Thursday, June 16, 2011

MOVE ORDER API

ALLOCATE MOVE ORDER

DECLARE
x_return_status VARCHAR2 (1);
x_msg_data VARCHAR2 (4000);
x_msg_count NUMBER;
l_line_tbl inv_move_order_pub.trolin_tbl_type;

PROCEDURE allocate_move_order (
p_line_tbl IN inv_move_order_pub.trolin_tbl_type
, x_return_status OUT VARCHAR2
, x_msg_data OUT VARCHAR2
, x_msg_count OUT NUMBER
)
IS
x_line_tbl inv_move_order_pub.trolin_tbl_type;
l_trolin_tbl inv_move_order_pub.trolin_tbl_type;
l_mold_tbl inv_mo_line_detail_util.g_mmtt_tbl_type;
l_qty_detailed NUMBER;
l_qty_delivered NUMBER;
l_return_status VARCHAR2 (1);
v_msg_index_out NUMBER;
l_rsr_type inv_reservation_global.mtl_reservation_tbl_type;
i INTEGER;
l_trolin_rec inv_move_order_pub.trolin_rec_type;
BEGIN
x_line_tbl := p_line_tbl;

IF x_line_tbl.COUNT > 0
THEN
FOR j IN x_line_tbl.FIRST .. x_line_tbl.LAST
LOOP
DBMS_OUTPUT.put_line (x_line_tbl (j).line_id);

BEGIN
inv_ppengine_pvt.create_suggestions (p_api_version => 1.0
, p_init_msg_list => fnd_api.g_false
, p_commit => fnd_api.g_false
, p_validation_level => fnd_api.g_valid_level_none
, x_return_status => x_return_status
, x_msg_count => x_msg_count
, x_msg_data => x_msg_data
, p_transaction_temp_id => x_line_tbl (j).line_id
, p_reservations => l_rsr_type
, p_suggest_serial => fnd_api.g_true
, p_plan_tasks => FALSE
, p_quick_pick_flag => 'N'
, p_organization_id => 207
);
DBMS_OUTPUT.put_line ('Return Status is :' || x_return_status);
DBMS_OUTPUT.put_line ('Message Count is :' || x_msg_count);

IF x_return_status = 'S'
THEN
BEGIN
l_trolin_tbl := x_line_tbl;

IF (l_trolin_tbl.COUNT <> 0)
THEN
i := l_trolin_tbl.FIRST;

WHILE i IS NOT NULL
LOOP
IF ( l_trolin_tbl (i).return_status <> fnd_api.g_ret_sts_unexp_error
AND l_trolin_tbl (i).return_status <> fnd_api.g_ret_sts_error
)
THEN
l_trolin_rec := inv_trolin_util.query_row (l_trolin_tbl (i).line_id);
l_trolin_tbl (i) := l_trolin_rec;
l_qty_detailed := l_trolin_tbl (i).quantity_detailed;
l_qty_delivered := NVL (l_trolin_tbl (i).quantity_delivered, 0);

IF NVL (l_qty_detailed, 0) = 0
THEN
l_mold_tbl := inv_mo_line_detail_util.query_rows (p_line_id => l_trolin_tbl (i).line_id);

FOR j IN 1 .. l_mold_tbl.COUNT
LOOP
l_mold_tbl (j).transaction_status := 3;
l_mold_tbl (j).transaction_mode := 1;
l_mold_tbl (j).source_line_id := l_trolin_tbl (i).line_id;
inv_mo_line_detail_util.update_row (l_return_status, l_mold_tbl (j));
END LOOP;

SELECT transaction_header_id, transaction_quantity
INTO l_trolin_tbl (i).transaction_header_id, l_trolin_tbl (i).quantity_detailed
FROM mtl_material_transactions_temp
WHERE move_order_line_id = l_trolin_tbl (i).line_id;

l_trolin_tbl (i).last_update_date := SYSDATE;
l_trolin_tbl (i).last_update_login := fnd_global.login_id;

IF l_trolin_tbl (i).last_update_login = -1
THEN
l_trolin_tbl (i).last_update_login := fnd_global.conc_login_id;
END IF;

l_trolin_tbl (i).last_updated_by := fnd_global.user_id;
l_trolin_tbl (i).program_id := fnd_global.conc_program_id;
l_trolin_tbl (i).program_update_date := SYSDATE;
l_trolin_tbl (i).request_id := fnd_global.conc_request_id;
l_trolin_tbl (i).program_application_id := fnd_global.prog_appl_id;
inv_trolin_util.update_row (l_trolin_tbl (i));
END IF;
END IF;

i := l_trolin_tbl.NEXT (i);
END LOOP;
END IF;
END;
ELSE
ROLLBACK;
END IF;

IF x_msg_count > 0
THEN
FOR v_index IN 1 .. x_msg_count
LOOP
fnd_msg_pub.get (p_msg_index => v_index
, p_encoded => 'F'
, p_data => x_msg_data
, p_msg_index_out => v_msg_index_out
);
x_msg_data := SUBSTR (x_msg_data, 1, 200);
DBMS_OUTPUT.put_line (x_msg_data);
DBMS_OUTPUT.put_line ('============================================================');
END LOOP;
END IF;
END;
END LOOP;
END IF;
END;
BEGIN
l_line_tbl (1).line_id := 3929705;
allocate_move_order (l_line_tbl, x_return_status, x_msg_data, x_msg_count);
COMMIT;
END;


TRANSACT MOVE ORDER

DECLARE
x_return_status VARCHAR2 (1);

PROCEDURE transact_move_order (p_move_order_id IN NUMBER, x_return_status OUT VARCHAR2)
IS
l_header_id NUMBER;
l_program VARCHAR2 (100);
l_func VARCHAR2 (100);
l_args VARCHAR2 (100);
p_timeout NUMBER;
l_old_tm_success BOOLEAN;
l_rc_field NUMBER;

CURSOR c1 (p_header_id IN NUMBER)
IS
SELECT transaction_header_id
FROM mtl_material_transactions_temp
WHERE transaction_source_id = p_header_id;
BEGIN
mo_global.set_policy_context ('S', 204);
inv_globals.set_org_id (207);
fnd_global.apps_initialize (1005902, 50583, 401);

FOR i IN c1 (p_move_order_id)
LOOP
l_program := 'INXTPU';
l_func := l_program;
l_args := l_program || ' ' || 'TRANS_HEADER_ID=' || TO_CHAR (i.transaction_header_id);
p_timeout := 500;
COMMIT;
l_old_tm_success :=
inv_pick_wave_pick_confirm_pub.inv_tm_launch (program => l_program
, args => l_args
, TIMEOUT => p_timeout
, rtval => l_rc_field
);

IF l_old_tm_success
THEN
x_return_status := 'S';
DBMS_OUTPUT.put_line ('Result is :' || 'Success');
ELSE
x_return_status := 'E';
DBMS_OUTPUT.put_line ('Result is :' || 'Failed');
END IF;

IF x_return_status = 'S'
THEN
COMMIT;
ELSE
ROLLBACK;
END IF;
END LOOP;
END;
BEGIN
transact_move_order (2055447, x_return_status);
COMMIT;
END;

Thursday, June 2, 2011

Origin Part I

the surnames which daivajnya brahmins style after thier names have thier origin from the places which are in goa.
Before daivajnas entered the land of karnataka,they resided in gomantak i.e goa.
They stayed in diffrent places where they had installed thier kuladevathas.
The surnames which have 'kar' in the end is suffixed to the names of the places of goa from where they hail.
Like daivajnya who hail from Rai village where they had installed sri kamakshi devi (at present installed in shiroda village of goa)style themselves as RAIKAR's.

People from palan as palankar,verne -vernekar,lotli-lotlikar,pawas-pauskar,anwe-anvekar.all these villages are still are still in goa till date.

Thursday, April 28, 2011

Debit / Credit Memos

Accounts Payable



  • Debit and Credit Memos are having the same meaning.

  • both are to reduce the balance of supplier.

  • Debit memo is raised by us

  • Credit Memo will be issued by the supplier.

Accounts Receivable



  • Debit memo is like supplimentory Invoice to increase the balance of Customer

  • Credit Memo is to reduce the balance of customer



  • For instance, if the customer was not charged with freight charges and we need to add them to his liability, as we cant prepare one more invoice for the freight charges. we prepare a debit memo.

  • Credit memo is issued when the customer is over invoiced, that he's charged more than what he should have been charg

Sunday, March 20, 2011

mailx

mailx -s "This is it" someone@someplace < somefile For simple text

For Binary
uuencode o115899948.zip o115899948.zip | mailx Narayan.Raykar@zyx.com



find / -name foo 2>/dev/null

Wednesday, March 16, 2011

Good Mutual Fund

how_i_find_good_mutual_funds


Go to Lists in each of the major fund categories. Find the top 25 performers over several different periods: 1 year, 3 years, 5 years, 10 years, 15 years and some even shorter term.

Let's say you're fairly young and you're looking for a growth fund, something with the chance of high returns but also a bit riskier.

Go first to the 1 Year tab on the "Growth" list. Print it out. Go to the 3 Year tab, print it out. Go to the 5 Year tab, print it out. Go to the 10 Year tab, print it out. Go to the 15 Year tab, print it out. Now you've got a lot of paper in front of you.

The first thing you are going to do is compare the 1-Year list to the 3-Year list. Find any mutual funds on the 1-Year list that are also on the 3-Year list and highlight them. Cross out the rest of the mutual funds listed on the 1-Year.

Now compare the 3-Year to the Five-Year, and don't completely forget the 1-Year. Look for the funds on the 5-Year that also made the 3-Year. Highlight those and cross out the rest of the 3-Years (except any 3-Years that had overlapped with the 1-Year, those might be under consideration).

Do the same comparing the 5-Year list to the 10-Year list, and comparing the 10-Year list to the 15-Year list.

What you want to do is find the funds that have the most overlap between these different time periods. I've never found any fund that was a top 25 performer for all the periods listed. More often you'll find overlap in the first, shorter-term periods or the longer-term periods, but not both.

Now, rank the funds that have made multiple lists. If any funds showed up on three lists, rank those first. If you have multiple funds that showed up on three lists, rank the ones that showed up on the long-term lists higher--for example, a fund that showed up on the 5-10-15 lists beats a fund that showed up on the 3-5-10 lists. Likewise with funds that show up on two of the lists. A fund that shows up on the 10 & 15 lists beats a fund that shows up on the 5 & 10 lists.

Make a list of the top 10 funds based on this criteria. Then you have to do a little more investigation.

First, some of these funds may be closed to new investors, especially those that have been successful for 10 or 15 years. So you first have to find out what you can even buy.

Second, check fees & loads. Some of these funds are going to have high management fees, which is OK since they're highly successful funds, but I still steer clear of those with higher fees. In the same way, I steer clear of funds with loads--a fee upfront or at fund selling that eats into your returns. Even with a track record of success, paying fees and loads will eat into your return without a guarantee that these funds will continue to perform as well as in the past.

Then, make your choice and send in your money.

I just did this exact exercise with growth funds and ended up buying into the Value Line Preferred Growth Fund (previously known as the Special Situations fund). It was not the highest-ranked fund under my system, but it was top 25 for both 10 & 15-year growth (at an average 12.92% for 10 years and 12.51% over the last 15 years). The expense ratio is 1.13% which is very low for a managed fund, and there are no loads, so you're not giving away your gains. Plus, you can actually buy into it, which I couldn't do for some of the other potential funds that had closed to new investors.

It takes more time explaining this method than actually doing it. Give it a try and I think you'll be happy with your long-term results.

Friday, February 25, 2011

Fertilizer

All plants require an uninterrupted supply of 14 nutrient elements to grow properly.

These are the Macro-nutrients:

  • nitrates (N)
  • phosphates (P)
  • calcium (Ca)
  • chloride (Cl)
  • sodium (Na)
  • magnesium (Mg)
  • potassium (K)
  • sulfates (S)

And the micro-nutrients:

  • iron (Fe)
  • boron (B)
  • copper (Cu)
  • zinc (Zn)
  • molybdenum (Mo)
  • manganese (Mn)

The macro-nutrients in the aquarium should come from water changes (tap water normally has all these nutrients in small amounts) and small amounts from the fish. Water changes should be done at least every 2 weeks and about 15% should be drained and replaced. This should supply sufficient macros.

The micro-nutrients are different and are normally in short supply in tap water. The other problem with the micro-nutrients is that they are very unstable in their inorganic form and normally precipitate and become unusable.

The Chelate Breakthrough

The discovery of an organic molecule the chelate which binds to metal-ions tightly allowing them to be dissolved in a water solution with no precipitation so making the nutrient available to the plant. This very important for aquatic plants which normally have a very large appetite for iron and may need as much as 4ppm to allow healthy growth without chlorosis.

Chelate Types

There are six types of chelates important to hydroponic growth but only two that need to be mentioned for aquarium plants both for production and in the aquarium.

EDTA (Ethylene-Diamene-Tetra-Acetic-acid) is the first and most commonly known. This is not ideally suited for aquatic plants because it is unstable at a higher pH than 6.0 and generally aquarium conditions are between pH6.0 and pH8.0. This is also a cheaper chelate and so is unfortunately used to cut costs, so absorption is limited.

DTPA (Dethylene-Triamine-Penta-Acetic-acid) would be a better choice and should be more widely used because it is stable up to a pH of 7.5. This is within the aquariums conditions.


When looking for a fertilizer as a very general rule look for:

  1. Preferably a liquid
  2. Low or No macro-nutrients
  3. High Iron (Fe) in the chelated form
  4. All the other micro-nutrients also in a chelated form if possible

Saturday, February 19, 2011

Name Change after Marraige

Pan Card Name Change Website
The instructions are
Instructions
x) The acknowledgment duly signed, affixed with photograph (in case of 'Individuals') alongwith demand draft/cheque, if any, proof of existing PAN, proof of identity & address as specified in the application alongwith any other relevant proof as specified (in Item No.IV - Documents to be submitted alongwith the application ) is to be sent to NSDL at 'National Securities Depository Limited, 3rd floor, Sapphire Chambers, Near Baner Telephone Exchange, Baner, Pune - 411045'.
(y) Superscribe the envelope with 'APPLICATION FOR PAN CHANGE REQUEST-Acknowledgment Number' (e.g. 'APPLICATION FOR PAN CHANGE REQUEST-881010200000097').