Създаване на документ и изпращане чрез email

Предназначение:Използва се за създаване на нов документ, който се изпраща автоматично до email на клиент
Функция:document_create_and_send
Параметри: 1. ЕИК на клиент (използвайте 000000000, 111111111 или 999999999 ако не го знаете)
2. Вид документ (1 - фактура, 2 - проформа, 3 - стокова разписка, 4 - протокол)
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->numbers_id) - ако не е посочено се използва основната номерация, 1 - за втора, 2 - за трета и т.н.
- Добавяне на клиента в базата с данни ($document->add_client_to_db) - въведете 1 и ако клиентът не съществува в номенклатурата с клиенти той ще се добави автоматично. Прави се проверка по ЕИК/ЕГН.
- Актуализиране на складовите наличности при ползване на модул "Склад" ($document->update_quantities). Въведете 1 ако желаете да се регистрират движения в склада.

- Редове на документ ($document->rows) - масив от обекти StdClass със следните полета:
  » Име на стока или услуга ($row->name)
  » Количество на стока/услуга ($row->quantity)
  » Мярка на стока/услуга ($row->measure_id) - за повече информация - 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) - ако се пропусне се изчислява автоматично спрямо фиксинга

4. Копие или оригинал (0 - оригинал /по подразбиране/, 1 - за копие)
5. Език на документ (0 - български език /по подразбиране/, 1 - английски език)
6. Email на клиент (ако не е посочена стойност, се взима електронната поща на клиента от базата с данни)
7. Обект $settings от тип StdClass (незадължителен), който съдържа полета за:
  - Subject ($settings->email_subject)
  - Текст на писмото ($settings->email_body)
  - Име на изпращач ($settings->sender_name)
  - Email на изпращач ($settings->sender_email)
Резултат:Обект $document от тип StdClass. В $document->id се съдържа ID на документа, а в $document->number неговия номер.
Възможни грешки: - Не е въведен ЕИК. Можете да използвате 000000000, 111111111 или 999999999 ако не знаете ЕИК на клиента! (501)
- Не е подаден последния параметър с детайлите на документа и редовете! (502)
- Невалиден вид на документ. Използвайте 1 за фактура/и, 2 за проформа/и, 3 за стокови разписка/и или 4 за протокол/и. (3)
- Грешка при изпълнение на заявка. (4)
Забележки:1. Ако някое поле свързано с клиента не е зададено в третия параметър на функцията, тогава то се извлича от базата данни в зависимост от въведения ЕИК номер.
2. Останалата инфорамация за документа (напр. Съставител) се извлича от последно издадения документ.
3. Тази функция не променя складовите наличности ако не се подаде параметър update_quantities = 1
4. Документът се изпраща като прикачен PDF файл.
5. Ако създавате документ само в чуждестранна валута, тогава можете да въведете единичните цени в редовете в съответната валута и за фиксинг да зададете 1.
6. Заради Наредба Н-18 в СУПТО е спряна възможността за създаване на фактури. Могат да се създават само проформа-фактури!
Примерен код: // Следния код се вмъква в примерния скрипт.

$client_number = '999999999'; // ЕИК на клиента, 999999999 - ако е частно лице
$doc_type = 3; // ст. разписка

$document = new StdClass();

$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->numbers_id = 0; // Коментирайте ако работите с основната номерация на програмата. 1 - за втора номерация, 2 - за трета и т.н.
$document->kind = 0; // използва се само в комбинация с $doc_type = 1; // фактура, само когато се издават известия, 1 - за кредитно, 2 - за дебитно.
$document->add_client_to_db = 1; // използва се ако клиентът не съществува в номенклатурата с клиенти и желаете да го добавите. Прави се проверка по ЕИК/ЕГН.

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

$doc_copy = 0; // оригинал, 1 - за копие
$doc_language = 0; // български език, 1 - английски език
$client_email = 'електронна_поща@на.клиент';
$settings = new StdClass();
$settings->email_subject = 'Платена поръчка';
$settings->email_body = 'Здравейте,<br>Вашата поръчка е приета! Изпращаме ви фактура като прикачен файл.<br><br>С най-добри пожелания,<br>Иван Иванов'; // Текст на писмото, приема и HTML маркери.
$settings->sender_name = 'Име на изпращач';
$settings->sender_email = 'електронна_поща@на.изпращач';

$new_document = $FAPI->document_create_and_send($client_number, $doc_type, $document, $doc_copy, $doc_language, $client_email, $settings);
if(isset($new_document)){
  echo 'Документът е създаден и изпратен!';
}else{
  echo ' Документът не е създаден!';
}
Внимание: “бисквитки”

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