Topic: Sales Orders Overview

Hello,

Is there anyway to check the items in all sales order for today and the amount or the total value of all sales orders for a certain period, like today.

Right now we have to download all today's sales order and to calculate them one by one. There is also no way to know what items that has been requested in the sales order.

I don't know if there is a better way that I am unaware of.

Kind Regards.

Re: Sales Orders Overview

Packing Slip is the way out.

Re: Sales Orders Overview

@apmuthu

Thats the same as printing Sales Orders.
i think report 105 is just perfect if we can add the total amount for each sales order next to the location.

Regards.

Re: Sales Orders Overview

i have fixed it by removing the location since i don't need it and replaced it with Order Total,,
here is the code in case someone needs it.

<?php
/**********************************************************************
    Copyright (C) FrontAccounting, LLC.
    Released under the terms of the GNU General Public License, GPL, 
    as published by the Free Software Foundation, either version 3 
    of the License, or (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
$page_security = 'SA_SALESBULKREP';
// ----------------------------------------------------------------
// $ Revision:    2.0 $
// Creator:    Joe Hunt
// date_:    2005-05-19
// Title:    Order Status List
// ----------------------------------------------------------------
$path_to_root="..";

include_once($path_to_root . "/includes/session.inc");
include_once($path_to_root . "/includes/date_functions.inc");
include_once($path_to_root . "/includes/data_checks.inc");
include_once($path_to_root . "/sales/includes/sales_db.inc");
include_once($path_to_root . "/inventory/includes/db/items_category_db.inc");

//----------------------------------------------------------------------------------------------------

print_order_status_list();

//----------------------------------------------------------------------------------------------------

function GetSalesOrders($from, $to, $category=0, $location=null, $backorder=0)
{
    $fromdate = date2sql($from);
    $todate = date2sql($to);

    $sql= "SELECT sorder.order_no,
                sorder.debtor_no,
                sorder.branch_code,
                sorder.customer_ref,
                sorder.ord_date,
                sorder.from_stk_loc,
                sorder.delivery_date,
                line.stk_code,
                item.description,
                item.units,
                sorder.total,
                line.quantity,
                line.qty_sent
            FROM ".TB_PREF."sales_orders sorder
                   INNER JOIN ".TB_PREF."sales_order_details line
                    ON sorder.order_no = line.order_no
                    AND sorder.trans_type = line.trans_type
                    AND sorder.trans_type = ".ST_SALESORDER."
                INNER JOIN ".TB_PREF."stock_master item
                    ON line.stk_code = item.stock_id
            WHERE sorder.ord_date >='$fromdate'
                AND sorder.ord_date <='$todate'";
    if ($category > 0)
        $sql .= " AND item.category_id=".db_escape($category);
    if ($location != null)
        $sql .= " AND sorder.from_stk_loc=".db_escape($location);
    if ($backorder)
        $sql .= " AND line.quantity - line.qty_sent > 0";
    $sql .= " ORDER BY sorder.order_no";

    return db_query($sql, "Error getting order details");
}

//----------------------------------------------------------------------------------------------------

function print_order_status_list()
{
    global $path_to_root;

    $from = $_POST['PARAM_0'];
    $to = $_POST['PARAM_1'];
    $category = $_POST['PARAM_2'];
    $location = $_POST['PARAM_3'];
    $backorder = $_POST['PARAM_4'];
    $comments = $_POST['PARAM_5'];
    $orientation = $_POST['PARAM_6'];
    $destination = $_POST['PARAM_7'];
    if ($destination)
        include_once($path_to_root . "/reporting/includes/excel_report.inc");
    else
        include_once($path_to_root . "/reporting/includes/pdf_report.inc");
    $orientation = ($orientation ? 'L' : 'P');

    if ($category == ALL_NUMERIC)
        $category = 0;
    if ($location == ALL_TEXT)
        $location = null;
    if ($category == 0)
        $cat = _('All');
    else
        $cat = get_category_name($category);
    if ($location == null)
        $loc = _('All');
    else
        $loc = get_location_name($location);
    if ($backorder == 0)
        $back = _('All Orders');
    else
        $back = _('Back Orders Only');

    $cols = array(0, 60, 150, 260, 325,    385, 450, 515);

    $headers2 = array(_('Order'), _('Customer'), _('Branch'), _('Customer Ref'),
        _('Ord Date'),    _('Del Date'),    _('Order Total'));

    $aligns = array('left',    'left',    'right', 'right', 'right', 'right',    'right');

    $headers = array(_('Code'),    _('Description'), _('Ordered'),    _('Delivered'),
        _('Outstanding'), '');

    $params =   array(     0 => $comments,
                        1 => array(  'text' => _('Period'), 'from' => $from, 'to' => $to),
                        2 => array(  'text' => _('Category'), 'from' => $cat,'to' => ''),
                        3 => array(  'text' => _('Location'), 'from' => $loc, 'to' => ''),
                        4 => array(  'text' => _('Selection'),'from' => $back,'to' => ''));

    $aligns2 = $aligns;

    $rep = new FrontReport(_('Order Status Listing'), "OrderStatusListing", user_pagesize(), 9, $orientation);
    if ($orientation == 'L')
        recalculate_cols($cols);
    $cols2 = $cols;
    $rep->Font();
    $rep->Info($params, $cols, $headers, $aligns, $cols2, $headers2, $aligns2);

    $rep->NewPage();
    $orderno = 0;

    $result = GetSalesOrders($from, $to, $category, $location, $backorder);

    while ($myrow=db_fetch($result))
    {
        $rep->NewLine(0, 2, false, $orderno);
        if ($orderno != $myrow['order_no'])
        {
            if ($orderno != 0)
            {
                $rep->Line($rep->row);
                $rep->NewLine();
            }
            $rep->TextCol(0, 1,    $myrow['order_no']);
            $rep->TextCol(1, 2,    get_customer_name($myrow['debtor_no']));
            $rep->TextCol(2, 3,    get_branch_name($myrow['branch_code']));
            $rep->TextCol(3, 4,    $myrow['customer_ref']);
            $rep->DateCol(4, 5,    $myrow['ord_date'], true);
            $rep->DateCol(5, 6,    $myrow['delivery_date'], true);
            $rep->TextCol(6, 7,    $myrow['total']);
            $rep->NewLine(2);
            $orderno = $myrow['order_no'];
        }
        $rep->TextCol(0, 1,    $myrow['stk_code']);
        $rep->TextCol(1, 2,    $myrow['description']);
        $dec = get_qty_dec($myrow['stk_code']);
        $rep->AmountCol(2, 3, $myrow['quantity'], $dec);
        $rep->AmountCol(3, 4, $myrow['qty_sent'], $dec);
        $rep->AmountCol(4, 5, $myrow['quantity'] - $myrow['qty_sent'], $dec);
        if ($myrow['quantity'] - $myrow['qty_sent'] > 0)
        {
            $rep->Font('italic');
            $rep->TextCol(5, 6,    _('Outstanding'));
            $rep->Font();
        }
        $rep->NewLine();
    }
    $rep->Line($rep->row);
    $rep->End();
}

Re: Sales Orders Overview

The rep105 should be retained as is and the amount can be optionally added under the "Del Date" field.

@Alaa's implementation is attached herewith.

@joe: should we add this into the Sales Orders Report in the core by placing the amount under the Del Date?

Post's attachments

rep105_balances.zip 9.3 kb, 5 downloads since 2018-01-28 

You don't have the permssions to download the attachments of this post.

Re: Sales Orders Overview

I will have a look into it.

Joe

Re: Sales Orders Overview

if the sum of Sales Orders for the printed period can be added to the report it'd make a great addition, right now there is noway to know the sum of all sales orders for the selected period. to get it i either use the calculator to enter the amount of each sales order, or by copying the whole sales order inquiry and paste it into excel.

Re: Sales Orders Overview

Hello Again,

I moved the Total Amount for every Sales Order under the Loc column. That gives a little more 'air'.
And of course a Grand Total.

Committed to 2.4 core repo.

I hope it is ok.

Joe

Post's attachments

OrderStatusListing_mod.pdf 3.2 kb, 2 downloads since 2018-01-29 

You don't have the permssions to download the attachments of this post.

Re: Sales Orders Overview

@Joe

Thanks a lot bro, its perfect, specially the total sales order.. i love it <3 .

Re: Sales Orders Overview

As long as the Qty Dec and the Prices/Amount Dec are the same the report is okay.

@joe: The variable $dec is first used in Line 157 but assigned only later at Line 164 and that too as a Quantity Unit's Decimal (get_qty_dec()) and used correctly in the next 3 lines for Quantity values but wrongly in Line 179 for Total Amount. Another variable, say $dec1 should be assigned user_price_dec() much earlier and used for the first and last occurrences of the current $dec. While at it, whitespace on Line 138 can also be removed.

Re: Sales Orders Overview

You are right, I didn't register that when changing. Thanks for reporting this. Will make a rerun in a while.

Joe

Re: Sales Orders Overview

Hello Guys.

If it is ok with 0 decimals, I could just change the two amount places to AmountCol. Default decimals here is 0.

I think that the decimal values is maybe unneeded in the amounts here, right?

Joe

Re: Sales Orders Overview

Ok, Guys. This has been committed with zero decimals in the amounts. I think it is better not to have too much digits when you shall overview the report.

/Joe

Post's attachments

OrdeStatusListing_rep105_final.pdf 3.2 kb, 5 downloads since 2018-01-30 

You don't have the permssions to download the attachments of this post.

Re: Sales Orders Overview

@Joe,
yes this way is much better.
thanks.