Обновяване на информация за документ чрез API

Предназначение:Използва се за обновяване на информацията в документ
Функция:document_update
Параметри: 1. Вид документ (1 - фактура, 2 - проформа, 3 - стокова разписка, 4 - протокол)
2. ID на документ
3. Обект $document от тип StdClass , който съдържа полета за:
- Обща сума в лева ($document->sum) - данъчна основа
- ДДС % ($document->dds_percent) - 0, 9 или 20
- Основание за нулева ставка или ненач. на ДДС ($document->null_value) - Попълва се само ако ДДС е 0%
- Начин на плащане ($document->payment_method_id) - 1 - в брой, 2 - по банка, 3 - POS, 4 - Epay.BG, 5 - частично в брой
- Забележка към документ ($document->note)
- Статус на плащане ($document->paid) - 1 - платен, 0 - неплатен, 2 - частично платен
- Кредитно или дебитно известие ($document->kind) - използва се само за фактурите; // 1 - за кредитно, 2 - за дебитно известие.
- Основание за кредитно или дебитно известие ($document->reason) - Попълва се ако се издава кредитно или дебитно известие
- ID на клиент ($document->client_id)
- Име на клиент ($document->client_name)
- Населено място на клиент($document->client_place)
- Данъчен адрес на клиент($document->client_address)
- ИН по ДДС на клиент ($document->client_dds)
- МОЛ на клиент ($document->client_face)
- Телефон на клиент ($document->client_phone)
- Email на клиент ($document->client_email)
- Име на получател ($document->receiver)
- МОЛ на доставчик ($document->company_face)
- Съставител на документа ($document->creator)
- Място на сделката ($document->place) - ако не е посочено се използва мястото от данъчния адрес на доставчика

- Редове на документ ($document->rows) - масив от обекти StdClass със следните полета:
  » Име на стока или услуга ($row->name)
  » Количество на стока/услуга ($row->quantity)
  » Мярка на стока/услуга ($row->measure_id) - 70 за брой. За повече информация - 4. ДРУГИ > Таблица с използвани мерни единици
  » Ед. цена на стока/услуга в лева ($row->price)
  » Артикулен номер ($row->code) - използва се задължително ако се ползва модул "Склад" или някоя от следващите две настройки
  » Зареждане на името от базата данни ($row->load_name_from_db) - можете да не подавате името през API, а да се извлича директно от базата данни спрямо подадения артикулен номер. Въведете 1 ако желаете това действие.
  » Зареждане на цената от базата данни ($row->load_price_from_db) - можете да не подавате ед. цена през API, а да се извлича директно от базата данни спрямо подадения артикулен номер. Въведете 1 ако желаете това действие.

Допълнителни полета за Invoice - документ на английски език
- Валута за английски език ($document->invoice_currency_id) - тук са описани всички възможни валути.
- Фиксинг спрямо лева ($document->currency_fixing) - по подразбиране е 1.
- Обща сума в съответната валутата ($document->retail_sum) - ако се пропусне се изчислява автоматично спрямо фиксинга.
Резултат:Обект $document от тип StdClass. В $document->id се съдържа ID на документа, а в $document->number неговия номер.
Грешки (код): - Не е въведен ЕИК. Можете да използвате 000000000, 111111111 или 999999999 ако не знаете ЕИК на клиента! (501)
- Не е подаден последния параметър с детайлите на документа и редовете! (502)
- Невалиден вид на документ. Използвайте 1 за фактура/и, 2 за проформа/и, 3 за стокови разписка/и или 4 за протокол/и. (3)
Забележки:1. Ако някое поле свързано с клиента не е зададено в третия параметър на функцията, тогава то се извлича от базата данни в зависимост от въведения ЕИК номер.
2. Останалата инфорамация за документа (напр. Съставител) се извлича от последно издадения документ.
3. Тази функция не променя складовите наличности.
4. Ако създавате документ само в чуждестранна валута, тогава можете да въведете единичните цени в редовете в съответната валута и за фиксинг да зададете 1.
Примерен код: // Примерният код се вмъква между НАЧАЛО и КРАЙ в инициализиращия код описан тук.

$doc_type = 3; // ст. разписка
$doc_id = 20; // ID на документ

$document = new StdClass();

$document->sum = 48;
$document->dds_percent = 20;
$document->invoice_currency_id = 4; // GBP
$document->currency_fixing = 2.234;
$document->client_eik = '999999999'; // ЕИК на клиента, 999999999 - ако е частно лице
$document->client_name = 'Име на клиент'; // ако не се зададе се извлича от базата данни спрямо въведения ЕИК
$document->client_place = 'Град';
$document->client_address = 'Данъчен адрес на клиента';
$document->client_dds = 'BG999999999';
$document->client_face = 'Иван Иванов';
$document->client_phone = 'Телефон';
$document->client_email = 'email@na.klient';
$document->receiver = 'Иван Иванов';
$document->reason = 'Основание за кредитно или дебитно известие'; // попълва се ако се издава кредитно или дебитно известие
$document->company_face = 'Георги Георгиев'; // ако не е попълнено се използва посочения МОЛ в настройките
$document->creator = 'Георги Георгиев'; // ако не е попълнено се използва посочения съставител в настройките
$document->place = 'гр. София'; // Място на сделката, ако не е посочено се използва мястото от данъчния адрес на доставчика
$document->kind = 0; // използва се само в комбинация с $doc_type = 1; // фактура, само когато се издават известия, 1 - за кредитно, 2 - за дебитно.
$document->rows = array();

// Ред 1
$row = new StdClass();
$row->name = 'Стока 1';
$row->quantity = 4;
$row->measure_id = 70;
$row->price = 10.00;
$document->rows[] = $row;

// Ред 2
$row = new StdClass();
$row->name = 'Стока 2';
$row->quantity = 1;
$row->measure_id = 90;
$row->price = 15.00;
$document->rows[] = $row;

$document->payment_method_id = 1;
$document->null_value = 'Неначислен ДДС съгласно чл.113 ал.9 от ЗДДС'; // основание за нулева ставка или ненач. на ДДС. Попълва се само ако ДДС е 0%.
$document->note = 'Забележка към документ';
$document->paid = 1; // маркиране като платен, 0 - неплатен

$new_document = $FAPI->document_update($doc_type, $doc_id, $document);
if(isset($new_document)){
  echo 'Документът е обновен успешно';
}else{
  echo ' Възникна грешка при обновяване!';
}
Внимание: “бисквитки”

Съгласно Регламент (ЕС) 2016/679 на Европейския парламент и на Съвета от 27 април 2016 година относно защитата на физическите лица във връзка с обработването на лични данни и относно свободното движение на такива данни (GDPR), за да използвате този уеб сайт и услугите предлагани чрез него, е необходимо да прочетете документите Правила и условия за ползване, Политика за поверителност и Политика за употреба на “бисквитки”, след което да отбележите изрично, че се съгласявате със съдържанието им.