- записываем полученное значение в таблицу;
- вычисляем количество месяцев с момента введения в эксплуатацию, до отчетного месяца;
- определяем значение суммы полной амортизации с начала эксплуатации, до отчетного месяца. Определим значение суммы, путем умножения значения месячной амортизации на полученное количество месяцев;
- записываем полученное значение в таблицу;
- определяем значение остаточной стоимости, вычтя из балансовой стоимости значение суммы полной амортизации;
- запишем полученное значение в таблицу и переходим к пункту (11).
11. Проверяем, какой тип оборудования, если «Обычный», то переходим к пункту (11), если «Автотранспорт», то выполняем:
- определяем значение полной суммы амортизации, путем умножения балансовой стоимости на коэффициент 0,481, разделим полученное значение на 1000 и умножим на пробег автотранспорта;
- записываем полученное значение в таблицу;
- определяем значение остаточной стоимости, вычтя из балансовой стоимости значение суммы полной амортизации;
- запишем полученное значение в таблицу и переходим к пункту (12).
12. Проверяем если значение суммы полной амортизации больше, чем балансовая стоимость, то:
- обнулим значение месячной амортизации;
- полный износ приравняем с балансовой стоимостью;
- значение остаточной стоимости приравняем к 0;
- запишем полученные данные в таблицу.
13. Проверяем если значение остаточной стоимости меньше чем 0, то:
- обнулим значение месячной амортизации;
- полный износ приравняем с балансовой стоимостью;
- значение остаточной стоимости приравняем к 0;
- запишем полученные данные в таблицу.
14. Переводим таблицу в режим сохранения данных (Post).
15. Перемещаем указатель базы данных на следующую запись.
16. Переходим к началу цикла. Пункт (8).
17. Снимаем с таблицы «Osnova.DB» монопольный режим.
18. Восстанавливаем связь с таблицей «Uhastoc.DB».
19. Завершаем процедуру расчета.
6 Порядок начисления сумм арендной платы
Так как все используемое оборудование является арендуемым, поэтому начисление сумм арендной платы производится от лица лизинговой компании, у которой данные основные фонды находятся на балансе [3], по формуле:
Аренда=((БалСтоим/100*Процент)+(БалСтоим/100*Процент)/100*КоэфИзн)/365*КолвоДней,
где:
- Аренда - стоимость арендной платы за месяц;
- БалСтоим - балансовая стоимость оборудования;
- Процент - процент амортизации;
- КоэИзн - коэффициент на износ;
- КолвоДней - количество дней в месяце, на который производится расчет арендной стоимости.
Если на момент расчета арендной стоимости основные фонды находится на складе, то организация берет их на ответственное хранение. В этом случае расчет арендной стоимости будет исходить из того, где в настоящее время хранится оборудование (на открытой площадке, в холодном складе, в отапливаемом складе), исходя из этого, изменяется значение коэффициента арендных отчислений для оборудования находящегося в ответственном хранении [2]. Тогда формула расчета стоимости арендной платы будет выглядеть:
Аренда=КоэфОтвХран*Объем*КолвоДней,
где:
- КоэфОтвХран - коэффициент расчета арендной стоимости при ответственном хранении;
- Объем - объем занимаемый на складе;
- КолвоДней - количество дней в отчетном месяце.
Если нет возможности измерить объем в метрической системе измерения, применяют в качестве значения объема, значение в тоннах, которое указано в документации по оборудованию. В этом случае значения коэффициентов указываются для расчета со значениями веса.
Вариант реализации расчетов на языке Object Pascal:
DataModule1.Table6.Edit;
IF DataModule1.Table6Arenda.Value='Аренда' Then Begin
X:=DataModule1.Table6Bas_stoim.Value/100*DataModule1.Table6Procent.Value;
Y:=X/100*Coofic.AHMRealSpinEdit5.Value;
DataModule1.Table6SunAnda.Value:=(X+Y)/365*AHMSpinEdit1.Value;
End;
IF DataModule1.Table6Arenda.Value='Ответ-хранение' Then Begin
IF DataModule1.Table6Sclad.Value='1' Then X:=Coofic.AHMRealSpinEdit1.Value;
IF DataModule1.Table6Sclad.Value='2' Then X:=Coofic.AHMRealSpinEdit2.Value;
IF DataModule1.Table6Sclad.Value='3' Then X:=Coofic.AHMRealSpinEdit3.Value;
IF DataModule1.Table6Sclad.Value='4' Then X:=Coofic.AHMRealSpinEdit4.Value;
DataModule1.Table6SunAnda.Value:=X*DataModule1.Table6KovMetr.Value*AHMSpinEdit1.Value;
End;
DataModule1.Table6.Post;
Полученные отчеты по арендной стоимости на оборудование направляются в подразделения, арендующие основные фонды и копия отправляется в лизинговую компанию, у которой непосредственно числится данное оборудование. Счета на оплату подаются в общей суммой с реестром оборудования в каждое подразделение.
В случае если оборудование начинают использовать в организациях субподрядчиках, с этого момента происходит расходование оборудования с баланса УПТК ОАО «Бамтоннельстрой», в лизинговую компанию, которая и будет являться организацией арендодателем.
Рассмотрим случай, при котором производят переоценку основных фондов.
1. Если произошла деноминация рубля, после чего для всех основных фондов необходимо пересчитать балансовую стоимость, в этом случае пользуемся следующими формулами.
Для случая если производится расчет на повышение стоимости:
НовБалСтоим= БалСтоим+(БалСтоим/100*Коэффициент),
где:
- НовБалСтоим – балансовая стоимость после переоценки;
- БалСтоим – балансовая стоимость до переоценки;
- Коэффициент – коэффициент на переоценку оборудования.
Для случая если производится расчет на понижение стоимости:
НовБалСтоим= БалСтоим-(БалСтоим/100*Коэффициент),
где:
- НовБалСтоим – Балансовая стоимость после переоценки;
- БалСтоим – Балансовая стоимость до переоценки;
- Коэффициент – коэффициент на переоценку оборудования.
Для переоценки оборудования необходимо точно указать коэффициенты перерасчета для каждого типа оборудования (Здания, сооружения, автотранспорт и т.д.).
В случае если основные фонды морально устарели и не имеют прежней стоимости, тогда нанимается оценщик оборудования, и по его заключению производят перерасчет балансовой стоимости оборудования.
Вариант реализации расчетов на языке Object Pascal:
DataModule1.Table1.Active:=False;
DataModule1.Table13.First;
While not DataModule1.Table13.Eof Do DataModule1.Table13.Delete;
IF RadioButton1.Checked=True Then Begin
DataModule1.Table6.First;
While not DataModule1.Table6.EOF Do Begin
IF DataModule1.Table6Kod.Value='1' Then Koof:=AHMRealSpinEdit1.Value;
IF DataModule1.Table6Kod.Value='2' Then Koof:=AHMRealSpinEdit2.Value;
IF DataModule1.Table6Kod.Value='3' Then Koof:=AHMRealSpinEdit3.Value;
IF DataModule1.Table6Kod.Value='4' Then Koof:=AHMRealSpinEdit4.Value;
IF DataModule1.Table6Kod.Value='5' Then Koof:=AHMRealSpinEdit5.Value;
IF DataModule1.Table6Kod.Value='6' Then Koof:=AHMRealSpinEdit6.Value;
IF DataModule1.Table6Kod.Value='7' Then Koof:=AHMRealSpinEdit7.Value;
IF DataModule1.Table6Kod.Value='8' Then Koof:=AHMRealSpinEdit8.Value;
IF DataModule1.Table6Kod.Value='9' Then Koof:=AHMRealSpinEdit9.Value;
IF Koof<>0 Then Begin
DataModule1.Table13.Append;
DataModule1.Table6.Edit;
DataModule1.Table13.FieldByName('Old_Stoim').AsFloat:=DataModule1.Table6Bas_stoim.Value;
PolZnac:=DataModule1.Table6Bas_stoim.Value/100*Koof;
DataModule1.Table6Bas_stoim.Value:=DataModule1.Table6Bas_stoim.Value+PolZnac;
DataModule1.Table13.FieldByName('New_Stoim').AsFloat:=DataModule1.Table6Bas_stoim.Value;
DataModule1.Table13.FieldByName('Inventar').AsString:=DataModule1.Table6Inventar.Value;
DataModule1.Table13.FieldByName('Uhastoc').AsString:=DataModule1.Table6Uhastoc.Value;
DataModule1.Table13.FieldByName('DataRash').AsDateTime:=Date;
DataModule1.Table13.Post;
DataModule1.Table6.Post;
End;
DataModule1.Table6.Next;
End;
DataModule1.Table9.First;
While not DataModule1.Table9.EOF Do Begin
IF DataModule1.Table9Kod.Value='1' Then Koof:=AHMRealSpinEdit1.Value;
IF DataModule1.Table9Kod.Value='2' Then Koof:=AHMRealSpinEdit2.Value;
IF DataModule1.Table9Kod.Value='3' Then Koof:=AHMRealSpinEdit3.Value;
IF DataModule1.Table9Kod.Value='4' Then Koof:=AHMRealSpinEdit4.Value;
IF DataModule1.Table9Kod.Value='5' Then Koof:=AHMRealSpinEdit5.Value;
IF DataModule1.Table9Kod.Value='6' Then Koof:=AHMRealSpinEdit6.Value;
IF DataModule1.Table9Kod.Value='7' Then Koof:=AHMRealSpinEdit7.Value;
IF DataModule1.Table9Kod.Value='8' Then Koof:=AHMRealSpinEdit8.Value;
IF DataModule1.Table9Kod.Value='9' Then Koof:=AHMRealSpinEdit9.Value;
IF Koof<>0 Then Begin
DataModule1.Table13.Append;
DataModule1.Table9.Edit;
DataModule1.Table13.FieldByName('Old_Stoim').AsFloat:=DataModule1.Table9Bal_stoim.Value;
PolZnac:=DataModule1.Table9Bal_stoim.Value/100*Koof;
DataModule1.Table9Bal_stoim.Value:=DataModule1.Table9Bal_stoim.Value+PolZnac;
DataModule1.Table13.FieldByName('New_Stoim').AsFloat:=DataModule1.Table9Bal_stoim.Value;
DataModule1.Table13.FieldByName('Inventar').AsString:=DataModule1.Table9Inventar.Value;
DataModule1.Table13.FieldByName('Uhastoc').AsString:=DataModule1.Table9Uhastoc.Value;
DataModule1.Table13.FieldByName('DataRash').AsDateTime:=Date;
DataModule1.Table13.Post;
DataModule1.Table9.Post;
End;
DataModule1.Table9.Next;
End;
End;
IF RadioButton2.Checked=True Then Begin
DataModule1.Table6.First;
While not DataModule1.Table6.EOF Do Begin
IF DataModule1.Table6Kod.Value='1' Then Koof:=AHMRealSpinEdit1.Value;
IF DataModule1.Table6Kod.Value='2' Then Koof:=AHMRealSpinEdit2.Value;
IF DataModule1.Table6Kod.Value='3' Then Koof:=AHMRealSpinEdit3.Value;
IF DataModule1.Table6Kod.Value='4' Then Koof:=AHMRealSpinEdit4.Value;
IF DataModule1.Table6Kod.Value='5' Then Koof:=AHMRealSpinEdit5.Value;
IF DataModule1.Table6Kod.Value='6' Then Koof:=AHMRealSpinEdit6.Value;
IF DataModule1.Table6Kod.Value='7' Then Koof:=AHMRealSpinEdit7.Value;
IF DataModule1.Table6Kod.Value='8' Then Koof:=AHMRealSpinEdit8.Value;
IF DataModule1.Table6Kod.Value='9' Then Koof:=AHMRealSpinEdit9.Value;
IF Koof<>0 Then Begin
DataModule1.Table13.FieldByName('Old_Stoim').AsFloat:=DataModule1.Table6Bas_stoim.Value;
DataModule1.Table6.Edit;
PolZnac:=DataModule1.Table6Bas_stoim.Value/100*Koof;
DataModule1.Table6Bas_stoim.Value:=DataModule1.Table6Bas_stoim.Value-PolZnac;
DataModule1.Table13.FieldByName('New_Stoim').AsFloat:=DataModule1.Table6Bas_stoim.Value;
DataModule1.Table13.FieldByName('Inventar').AsString:=DataModule1.Table6Inventar.Value;
DataModule1.Table13.FieldByName('Uhastoc').AsString:=DataModule1.Table6Uhastoc.Value;
DataModule1.Table13.FieldByName('DataRash').AsDateTime:=Date;
DataModule1.Table13.Post;
DataModule1.Table6.Post;
End;
DataModule1.Table6.Next;
End;
DataModule1.Table9.First;
While not DataModule1.Table9.EOF Do Begin
IF DataModule1.Table9Kod.Value='1' Then Koof:=AHMRealSpinEdit1.Value;
IF DataModule1.Table9Kod.Value='2' Then Koof:=AHMRealSpinEdit2.Value;
IF DataModule1.Table9Kod.Value='3' Then Koof:=AHMRealSpinEdit3.Value;
IF DataModule1.Table9Kod.Value='4' Then Koof:=AHMRealSpinEdit4.Value;
IF DataModule1.Table9Kod.Value='5' Then Koof:=AHMRealSpinEdit5.Value;
IF DataModule1.Table9Kod.Value='6' Then Koof:=AHMRealSpinEdit6.Value;
IF DataModule1.Table9Kod.Value='7' Then Koof:=AHMRealSpinEdit7.Value;
IF DataModule1.Table9Kod.Value='8' Then Koof:=AHMRealSpinEdit8.Value;
IF DataModule1.Table9Kod.Value='9' Then Koof:=AHMRealSpinEdit9.Value;