@joe, i have tested your solution, it works fine. looks like its very easy solution. to get the dimensions on the next invoice

@joe , great to hear it.  How about cron job connectivity. ?

Shall we make one to make it automatically on its recurrent day.

@joe,  his point is dimensions are missing. I think we are recreating the cart here.

$doc = new Cart(ST_SALESORDER, array($order_no));

And that will get the dimensions from the sales orders table.

And then it will be creating the invoice here

    $invno = $cart->write(1);

Looks like a passing parameter is missing.

If possible we can extend it to connect with Linux cron jobs to run it automatically on a certain period gap.

It's a tricky feature to add both language for a single item. We must add one more name field to store it in stock master table.

And than you can customize the sales and purchase invoice to show the second name field in it .

But for rtl,  it's a bit complex to make it both in same invoice.

480

(22 replies, posted in Setup)

@joe, your solution is good. Instead of rewriting it as journal entry. We keep the invoices alive and it's allocations alive. So it will be removed if they remove next fiscal year. 

@madosk, This is definitely a time saving way for you to implement it.  Hope your problem fixed with this. And post an reply after using this updated program. It would be a solved solution for future referring users.

481

(22 replies, posted in Setup)

How ever there is a problem with payment of next year for previous year invoice.

Let's take his example. He issued several invoices  at the end of last year and collected the payment in next year.  Which means the system needs to make one journal entry for a customer at least to record the invoice balances as opening balance and that should be allocated in the next year.

482

(12 replies, posted in Banking and General Ledger)

I will try this and update you brother. Hopefully, we can come up with a solution.

483

(22 replies, posted in Setup)

That's good idea. But you have to know which invoices are allocated. With that it's good for you to reallocate it.  Hope you got good solution. Once you implement it successfully or issues. Just drop your feedbacks and hints

484

(22 replies, posted in Setup)

The existing delete fiscal year function already handles to delete in other entries. And you don't need to study much of it. But you have to study something to create journal entry for opening balance in sales and purchase.  Before deleting it on customer invoice and supplier invoice.  We have to make this function to create opening balance. And than you can allow it to delete the entries. I can understand it would take more time to delete it. Probably . You can wrote a cron job to run it for every 10mins and in a certain length of invoices and data. The system won't freeze or fail to remove. You can run it in free time like your night time or in holidays. So you can achieve it in less time and you don't need to worry about timeouts. There you have more data. So you have to write a separate function and call it inside FA. Or call it inside cron job. That will do the process.

485

(22 replies, posted in Setup)

I am giving the way of my solution. Because I tried one functionality before for the users who are coming to FA from other software's.  Like they wanted to keep the journal of previous customer opening balances as journal entry. And when the customer make payment record the payment against that journal entries.

So the solution is to separate the invoices which are paid on 2015 and invoiced in 2014.  And than we have to summarise the balance of it and make one journal entry.  And change the allocation of invoices to that newly created journal entry to take effect. Let's say if you have 50 invoices in 2014 and paid in 2015. All these invoices needs to be removed and created one journal entry with all its balance.  After that we have to reallocate the payments against that journal entry.  Like this. We can remove all the other entries like stock balance in stock moves,

You have to remove related entries in
audit trail
Bank trans
Comments,
Cust allocations
Debtor trans
Debtor trans details
Gl trans
Journal
Grn_items, batch
Purch_orders
Purch_order_details
Sales orders
Sales orders details
Stock moves
Supp trans
Supp trans details
Trans tax details
Wo orders,

And other tables if anything affecting the yearly data. 
May be If you see tother

486

(20 replies, posted in Report Bugs here)

@detkenn if you see more depreciation , do list them, some one will find solution to it.

@detkenn - not everyone is expert in accounting.  Sometimes a learning accountant,  like new joiny or new person, might make mistake in account selection. And sometimes by mistake. We might choose wrong account and input it by accidently, in this cases the careless mistake can be highlighted. Most of accounting software's  also have this feature to check before make entries.

Hope this feature would be helpful for others.

cedricktshiyoyo wrote:

A thousand times thanks brother @kvvaradha . The code worked perfectly.
This was exactly what I needed. I will modify it little bit with your permission for other accounts too.

Big thanks again!!!

That's good to hear it.

If you modify the code, I feel it's very much usefull to FA  community. So provide it for us to update FA  core.

@Joe,  can you check this to update it to core. May be its useful feature for others.

Your second option is fine I feel. Because sometimes. People may make reverse entries once they made mistake in another form. So I think the warning would be fine. At the same time even if they post it with warning. It should work and submit the journal entry.

Here is a screenshot for reference what i talked. And code i modified in gl_journal.php

// New function to check it 
function check_account_selection($code, $amount){
    $sql = "SELECT ms.*, cl.class_name, cl.ctype FROM ".TB_PREF."chart_master AS ms LEFT JOIN ".TB_PREF."chart_types AS tp ON ms.account_type= tp.id LEFT JOIN ".TB_PREF."chart_class AS cl ON cl.cid = tp.class_id WHERE account_code= ".db_escape($code);
    $res = db_query($sql, "Cant get the chart class selection");
    if(db_num_rows($res) == 1 ){
        if($row = db_fetch($res)){
            if($row['ctype'] == CL_EXPENSE && $amount > 0)
                display_warning(_("You are entered the Expense under the debit side"));
            if($row['ctype'] == CL_ASSETS  && $amount < 0 )
                display_warning(_("You are entered the Asset in credit side"));
        }
    }

}
function handle_new_item()
{
    if (!check_item_data())
        return;


    if (input_num('AmountDebit') > 0)
        $amount = input_num('AmountDebit');
    else
        $amount = -input_num('AmountCredit');
    
    check_account_selection(get_post('code_id'), $amount);  // This is new line in existing code
    

    $_SESSION['journal_items']->add_gl_item($_POST['code_id'], $_POST['dimension_id'],
        $_POST['dimension2_id'], $amount, $_POST['LineMemo'], '', get_post('person_id'));
      unset($_SESSION['journal_items']->tax_info);
    line_start_focus();
}

abd for updating of exiting entry.

 
function handle_update_item()
{
    if($_POST['UpdateItem'] != "" && check_item_data())
    {
        if (input_num('AmountDebit') > 0)
            $amount = input_num('AmountDebit');
        else
            $amount = -input_num('AmountCredit');


        check_account_selection(get_post('code_id'), $amount); // This is new line in existing code


        $_SESSION['journal_items']->update_gl_item($_POST['Index'], $_POST['code_id'], 
            $_POST['dimension_id'], $_POST['dimension2_id'], $amount, $_POST['LineMemo'], '', get_post('person_id'));
        unset($_SESSION['journal_items']->tax_info);
        line_start_focus();
    }
}

@barbarian, for clinic management. Customers are simply the patients. So I guess you can rename the customer as patient and use it. In come cases they don't select patient name. That cases you can give a textbox to input it. And branches you don't need here.

Regarding the batch and expiry date. It's valid only for the pharma purpose.  Suppose if they are billing some charges from clinic. It should be recorded without batch.

Looks like you need to make a type selection whether it's pharma bill or service bill. Based on that batch and expiry date you can enable.

@apmuthu,  thank you. Batch and expiry date .

Cost 100 USD. 

Demo is also available there in above link.

492

(12 replies, posted in Banking and General Ledger)

We can make sales quote without checking the stock. But here he said. It's given to customers when the goods are ready to deliver.  May be it's not required for common FA  users. It might be useful for some manufacturing companies and pharamedical wholesalers.

@geesyscare. Do we need to make pdf format for it. Can you show us a sample Pro-forma invoice in pdf.

Brother. Again here. As we already spoken about it. We have large Amount of data. So it makes more queries again and again to get both reports results. And we have two options
1. Introduce a new table to record the available stock , ordered , waiting to process, and in manufacturing.  It would need to change the program to run it every movement of inventory.
2. To make a cron job and prepare this report in server's free time like morning 2 am to 6 am.


Or we can increase the server config and reduce unnecessary tables to give some extra cache to run

494

(12 replies, posted in Banking and General Ledger)

@apmuthu. It looks like a special one of delivery. But the difference is , the Pro-forma  invoice given before deliver the goods and the same time he said. The goods is waiting for delivery. Which means the goods is ready. So we make PI from order.

@barbarian. I have made it already. You can watch the video to see mine one.  It was core customized. Batch and expiry date for frontaccounting

And if anyone find it any changes. Just drop in
Your suggestions.  Or changes. We can make it.

496

(12 replies, posted in Banking and General Ledger)

It looks like the Pro-forma  invoice is going to work in between the sales order and delivery. And doesn't make any GL entires and stock entries. Simply we can see the goods is ready for the customer.

Here how does the Pro-forma to delivery step happens. ?

If customer pays the money. Do we need to record against Pro-forma invoice or we have to complete the delivery and invoice. And than we have to record payment against the invoice.

497

(15 replies, posted in Setup)

That's good to hear. May be in future it will  be helpful for someone to read this infuture. So write here how you understand it.

498

(15 replies, posted in Setup)

I am not sure how you tried. Let me provide my scenario.

1. Created two item tax types one with tax and another with fully exempt.

2. And I already had two taxes 5% and 7%..
3. Then I created two items one with taxed item and another fully exempted item.
4. Then I created a supplier with taxed group. That was also already existing.
5. Now I have gone to supplier invoice and added taxed item with created tax rate. And then I added fully exempted item. There it didn't change the tax value.

Hope this test explains the tax can be applied based on items and suppliers tax group.

Suppose if your supplier is fully exempted tax group. Than it won't apply any tax for his invoices.

499

(6 replies, posted in Setup)

Have not implemented electronic invoices So far. May be we will do it in a custom module to FA.  It requires clear idea to make such a good module. If you looking for paid development  post a job under the jobs category. There will be developers to try it.

500

(6 replies, posted in Setup)

Electronic invoice has different formats. How you wanted to make it. The pdf is also a electronic format. May be xml, soon, or  ocr you meant