X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fincludes%2Fdb%2Fsales_invoice_db.inc;h=ccbcc0eb032dd7c7adeeaa00bdada22ed4ea3c88;hb=6ff34c1474ec3724609905319b3bbc087b49451e;hp=a072076940326041f532f1cec17225b167b83d04;hpb=58ca6ac4ea7a903514388cf8c3f380f745d81551;p=fa-stable.git diff --git a/sales/includes/db/sales_invoice_db.inc b/sales/includes/db/sales_invoice_db.inc index a0720769..ccbcc0eb 100644 --- a/sales/includes/db/sales_invoice_db.inc +++ b/sales/includes/db/sales_invoice_db.inc @@ -158,14 +158,14 @@ function write_sales_invoice(&$invoice) } /*end of delivery_line loop */ if (($items_total + $charge_shipping) != 0) { - $total += add_gl_trans_customer(ST_SALESINVOICE, $invoice_no, $date_, $branch_data["receivables_account"], 0, 0, + $total += add_gl_trans_customer(ST_SALESINVOICE, $invoice_no, $date_, $branch_data["receivables_account"], $invoice->dimension_id, $invoice->dimension2_id, ($items_total + $charge_shipping + $items_added_tax + $freight_added_tax)*$prepaid_factor, $invoice->customer_id, "The total debtor GL posting could not be inserted"); } $to_allocate = ($items_total + $charge_shipping + $items_added_tax + $freight_added_tax); if ($charge_shipping != 0) { - $total += add_gl_trans_customer(ST_SALESINVOICE, $invoice_no, $date_, $company_data["freight_act"], 0, 0, + $total += add_gl_trans_customer(ST_SALESINVOICE, $invoice_no, $date_, $company_data["freight_act"], $invoice->dimension_id, $invoice->dimension2_id, -$invoice->get_tax_free_shipping()*$prepaid_factor, $invoice->customer_id, "The freight GL posting could not be inserted"); } @@ -177,7 +177,7 @@ function write_sales_invoice(&$invoice) $taxitem['rate'], $invoice->tax_included, $prepaid_factor*$taxitem['Value'], $taxitem['Net'], $ex_rate, $date_, $invoice->reference, TR_OUTPUT); if (isset($taxitem['sales_gl_code']) && !empty($taxitem['sales_gl_code']) && $taxitem['Value'] != 0) - $total += add_gl_trans_customer(ST_SALESINVOICE, $invoice_no, $date_, $taxitem['sales_gl_code'], 0, 0, + $total += add_gl_trans_customer(ST_SALESINVOICE, $invoice_no, $date_, $taxitem['sales_gl_code'], $invoice->dimension_id, $invoice->dimension2_id, (-$taxitem['Value'])*$prepaid_factor, $invoice->customer_id, "A tax GL posting could not be inserted"); } @@ -193,21 +193,25 @@ function write_sales_invoice(&$invoice) if ($invoice->payment_terms['cash_sale'] && $invoice->pos['pos_account']) { $amount = $items_total + $items_added_tax + $invoice->freight_cost + $freight_added_tax; - - // to use debtors.pmt_discount on cash sale: - // extend invoice entry page with final amount after discount - // and change line below. - $discount = 0; // $invoice->cash_discount*$amount; - $pmtno = write_customer_payment(0, $invoice->customer_id, - $invoice->Branch, $invoice->pos['pos_account'], $date_, - $Refs->get_next(ST_CUSTPAYMENT, null, array('customer' => $invoice->customer_id, - 'branch' => $invoice->Branch, 'date' => $date_)), - $amount-$discount, $discount, - $invoice->pos['pos_name'].' #'.$invoice_no); - add_cust_allocation($amount, ST_CUSTPAYMENT, $pmtno, ST_SALESINVOICE, $invoice_no, $invoice->customer_id, $date_); - - update_debtor_trans_allocation(ST_SALESINVOICE, $invoice_no, $invoice->customer_id); - update_debtor_trans_allocation(ST_CUSTPAYMENT, $pmtno, $invoice->customer_id); + if ($amount != 0) { + // to use debtors.pmt_discount on cash sale: + // extend invoice entry page with final amount after discount + // and change line below. + $discount = 0; // $invoice->cash_discount*$amount; + $payment_info = $invoice->pos['pos_name'].' #'.$invoice_no; + if (!empty($invoice->payment_info)) + $payment_info .= ' ' . $invoice->payment_info; + $pmtno = write_customer_payment(0, $invoice->customer_id, + $invoice->Branch, $invoice->pos['pos_account'], $date_, + $Refs->get_next(ST_CUSTPAYMENT, null, array('customer' => $invoice->customer_id, + 'branch' => $invoice->Branch, 'date' => $date_)), + $amount-$discount, $discount, $payment_info, + 0,0,0,$invoice->dimension_id, $invoice->dimension2_id); + add_cust_allocation($amount, ST_CUSTPAYMENT, $pmtno, ST_SALESINVOICE, $invoice_no, $invoice->customer_id, $date_); + + update_debtor_trans_allocation(ST_SALESINVOICE, $invoice_no, $invoice->customer_id); + update_debtor_trans_allocation(ST_CUSTPAYMENT, $pmtno, $invoice->customer_id); + } } } reallocate_payments($invoice_no, ST_SALESINVOICE, $date_, $to_allocate, $allocs, $invoice->customer_id); @@ -245,8 +249,9 @@ function void_sales_invoice($type, $type_no) if ($deliveries !== 0) { if ($type == ST_SALESINVOICE && count($deliveries) == 1 && get_reference(ST_CUSTDELIVERY, $deliveries[0]) == "auto") { + $trans = get_customer_trans($deliveries[0], ST_CUSTDELIVERY); void_sales_delivery(ST_CUSTDELIVERY, $deliveries[0], false); - $date_ = Today(); + $date_ = sql2date($trans['tran_date']); add_audit_trail(ST_CUSTDELIVERY, $deliveries[0], $date_, _("Voided.")); add_voided_entry(ST_CUSTDELIVERY, $deliveries[0], $date_, ""); } @@ -254,7 +259,7 @@ function void_sales_invoice($type, $type_no) { $srcdetails = get_sales_parent_lines($type, $type_no); while ($row = db_fetch($srcdetails)) { - update_parent_line($type, $row['id'], -$row['quantity']); + update_parent_line($type, $row['id'], -$row['qty_done']); } } } @@ -287,7 +292,7 @@ function get_cust_prepayment_invoice_factor($trans_no) LEFT JOIN ".TB_PREF."sales_orders so ON so.trans_type=".ST_SALESORDER." AND so.order_no=dt.order_ WHERE dt.type=".ST_SALESINVOICE." AND trans_no=".db_escape($trans_no); $row = db_fetch(db_query($sql, 'cannot retrieve prepaid invoice factor')); - return $row[0]; + return is_array($row) ? $row[0] : false; } /*