Compare commits

...

393 Commits

Author SHA1 Message Date
Dmitriy Shesterkin d66b628966 change port on develop server 8 years ago
Dmitriy Shesterkin b6bcf24a4e ordering for table documents by date as default, and in current orfrring order by document number 8 years ago
Dmitriy Shesterkin bf8f725b15 add last number in doc by year 8 years ago
Dmitriy Shesterkin 6fd0c7983d fix factura 8 years ago
Dmitriy Shesterkin db04eb8bd2 refactor file response 8 years ago
Dmitriy Shesterkin 6bc17a9824 remove phone frome footer 8 years ago
Dmitriy Shesterkin 78c3642fa1 change doc change factura 8 years ago
Dmitriy Shesterkin cbdffe2472 refactor factura 8 years ago
Dmitriy Shesterkin 21b36de00b change email 8 years ago
Dmitriy Shesterkin 1ff5a1003f display email or phone in admin callback list 8 years ago
Dmitriy Shesterkin 2bd2d1d7f9 change settings sentry, swith to lets-dev 8 years ago
Dmitriy Shesterkin 2572aaf813 develop settings 8 years ago
Dmitriy Shesterkin 5dd9c5b9b9 add decorator for check active profile for edit docs, some fixes in save profile model with checking existing file img 8 years ago
Dmitriy Shesterkin a926b029c3 remake port for develop (down) 8 years ago
Dmitriy Shesterkin bbdee0a5b1 remake port for develop 8 years ago
Dmitriy Shesterkin 9376a8fd89 remake port for develop 8 years ago
Dmitriy Shesterkin bd20e31463 remake port for develop 8 years ago
Dmitriy Shesterkin 6e30ec8ca0 remake port for develop 8 years ago
Dmitriy Shesterkin 7743f15cd0 fixes 8 years ago
Dmitriy Shesterkin 3020b571c6 fix mobile 8 years ago
Dmitriy Shesterkin 4f5f9f0c30 . 8 years ago
Dmitriy Shesterkin 2d3e51d1aa main page 8 years ago
Dmitriy Shesterkin b1a02e1306 main page 8 years ago
Dmitriy Shesterkin 509d6bd180 hide choice type doc for email 8 years ago
Dmitriy Shesterkin c9574ebe99 some fixes 8 years ago
Dmitriy Shesterkin 8173a01dbe robots 9 years ago
Dmitriy Shesterkin 43d3a8aacb fix name file 9 years ago
Dmitriy Shesterkin 27d4f12e32 add tel 9 years ago
Dmitriy Shesterkin df4951ee98 fix 9 years ago
Dmitriy Shesterkin a7e51b4bfe fix search 9 years ago
Dmitriy Shesterkin a132b268ce ssl prod 9 years ago
Dmitriy Shesterkin 34a272ef7a ssl prod 9 years ago
Dmitriy Shesterkin 2985bc01f2 ssl prod 9 years ago
Dmitriy Shesterkin d2c2e55def add ssl 9 years ago
Dmitriy Shesterkin 15318fb555 cusmetic 9 years ago
Dmitriy Shesterkin d187eeb136 add kays 9 years ago
Dmitriy Shesterkin 77b52ac347 fix 9 years ago
Dmitriy Shesterkin 57a59239aa new blank sf 9 years ago
Dmitriy Shesterkin 4949341105 new blank af 9 years ago
Dmitriy Shesterkin 89eab8a76d fix 9 years ago
Dmitriy Shesterkin ce5809e45b fix 9 years ago
Dmitriy Shesterkin f59d895fb0 fix copy 9 years ago
Dmitriy Shesterkin 27d064edd1 fakt xls 9 years ago
Dmitriy Shesterkin dea54ae06b nakldn xls 9 years ago
Dmitriy Shesterkin d356a72252 add invoce xls 9 years ago
Dmitriy Shesterkin 350fc1c9e9 fix 9 years ago
Dmitriy Shesterkin 6d9ade1685 fix bonus 9 years ago
Dmitriy Shesterkin c80e0f587e dadata commas 9 years ago
Dmitriy Shesterkin e5e13a1c61 add msg bonus 9 years ago
Dmitriy Shesterkin d4eb5fce98 last task, cosmetic 9 years ago
Dmitriy Shesterkin 4bdc033a1a sentry 9 years ago
Dmitriy Shesterkin d8160375a4 fix 9 years ago
Dmitriy Shesterkin a582467b59 test 9 years ago
Dmitriy Shesterkin 7163487697 deploy 9 years ago
Dmitriy Shesterkin 10b9f4d3b8 fix 9 years ago
Dmitriy Shesterkin c257e97cc9 rename 9 years ago
Dmitriy Shesterkin f21a72a2f8 fix 9 years ago
Dmitriy Shesterkin 835f1fb8b3 sentry settings 9 years ago
Dmitriy Shesterkin afe7478218 settings 9 years ago
Dmitriy Shesterkin fe0751a33f some change 9 years ago
Dmitriy Shesterkin 9527037343 branch 9 years ago
Dmitriy Shesterkin ee789e5dda add error pages 9 years ago
Dmitriy Shesterkin de95a155aa add template 9 years ago
Dmitriy Shesterkin 9c1c19d5bf add template 9 years ago
Dmitriy Shesterkin 9ef9bc4163 deploy 9 years ago
Dmitriy Shesterkin 963c82b017 fix 9 years ago
Dmitriy Shesterkin f025095134 add robots 9 years ago
Dmitriy Shesterkin d1751f5032 settings 9 years ago
Dmitriy Shesterkin a49b4bb9b9 fab settings 9 years ago
Dmitriy Shesterkin fc5243afb1 fab settings 9 years ago
Dmitriy Shesterkin 88da071b27 deploy 9 years ago
Dmitriy Shesterkin 120fb436bf env settings, deploy 9 years ago
Dmitriy Shesterkin 1d4af24bb0 Необязательные поля на форме создания счет фактуры 9 years ago
Dmitriy Shesterkin 6f29b56bf7 Кореектировка формы накладной, платильщик/покупатель 9 years ago
Dmitriy Shesterkin ceb21d4f4e fix 9 years ago
Dmitriy Shesterkin 8f65be007f fix ports 9 years ago
Dmitriy Shesterkin 80f4ad07dc add stage composer for test 9 years ago
Dmitriy Shesterkin 152709a8e6 delete upload dir 9 years ago
Dmitriy Shesterkin 10f28b1520 some refactor structure for downloaddata 9 years ago
Dmitriy Shesterkin 2a58164055 add test loading data 9 years ago
Dmitriy Shesterkin fa23975119 some fix 9 years ago
Dmitriy Shesterkin 960e5d1e67 orsering field 9 years ago
Dmitriy Shesterkin 99cc95f57e add gitatributes 9 years ago
Dmitriy Shesterkin a757f0bbc4 inn and kpp separately 9 years ago
Dmitriy Shesterkin a7d2afc48c fix 9 years ago
Dmitriy Shesterkin a93a2a4e7a add nakladn second part template 9 years ago
Dmitriy Shesterkin c9c5feb1b9 Печатная форма накладной-первая страница 9 years ago
Dmitriy Shesterkin 0507346fcc Накладная добавил форму, перед редактированием шаблона 9 years ago
Dmitriy Shesterkin 1535720a23 Накладная добавил форму, перед редактированием шаблона 9 years ago
Dmitriy Shesterkin 68a012af47 fix 9 years ago
Dmitriy Shesterkin dbd3a7803d add government_description 9 years ago
Dmitriy Shesterkin 9d0b48fbde add gov in template 9 years ago
Dmitriy Shesterkin 5f88ccc9fa fix template act 9 years ago
Dmitriy Shesterkin 5b83b2540d fix invoce template 9 years ago
Dmitriy Shesterkin fe9959decc cosmetic 9 years ago
Dmitriy Shesterkin da450274be add postal index 9 years ago
Dmitriy Shesterkin a3b807b1ed fix template 9 years ago
Dmitriy Shesterkin d8d71025a3 menu 9 years ago
Dmitriy Shesterkin 9d42209cf0 add png=>bmp in excel 9 years ago
Dmitriy Shesterkin 71c2309e1a fix height in block filter on page with list docs 9 years ago
Dmitriy Shesterkin 8798e56b2c clining 9 years ago
Dmitriy Shesterkin 2ea4ca0352 fix id 9 years ago
Dmitriy Shesterkin fc311b60dc add help 9 years ago
Dmitriy Shesterkin 82e977459f fix 9 years ago
Dmitriy Shesterkin c848288fe4 fix fonts 9 years ago
Dmitriy Shesterkin b875ade76f ordering 9 years ago
Dmitriy Shesterkin 8fdb186bab save btn 9 years ago
Dmitriy Shesterkin 0f9ccc98cb union doc in template 9 years ago
Dmitriy Shesterkin 07c382cf59 sall sign 9 years ago
Dmitriy Shesterkin 939ce7b81f small sign 9 years ago
Dmitriy Shesterkin af523690f0 success page 9 years ago
Dmitriy Shesterkin 88b390204e fix 9 years ago
Dmitriy Shesterkin adf62a9c79 add link 9 years ago
Dmitriy Shesterkin d30ba2aad9 fix js 9 years ago
Dmitriy Shesterkin 6f9fd77ae0 debug 9 years ago
Dmitriy Shesterkin 4f4dfcb557 requisite 9 years ago
Dmitriy Shesterkin 3e5e3734bb display bonus lic 9 years ago
Dmitriy Shesterkin c494071e3f fix 9 years ago
Dmitriy Shesterkin 51c6600842 fix 9 years ago
Dmitriy Shesterkin bd7798a19b add url 9 years ago
Dmitriy Shesterkin c0b2d71147 fix date 9 years ago
Dmitriy Shesterkin c2c0acc354 fix date 9 years ago
Dmitriy Shesterkin d604045946 fix form 9 years ago
Dmitriy Shesterkin 575af13e37 fix 9 years ago
Dmitriy Shesterkin 87026cab5e fix date 9 years ago
Dmitriy Shesterkin 39f6a9e71b add bonus system 9 years ago
Dmitriy Shesterkin 628dbe6779 fix number 9 years ago
Dmitriy Shesterkin 65c60c512a fix 9 years ago
Dmitriy Shesterkin 1b2f5541f3 add send email 9 years ago
Dmitriy Shesterkin 058e363898 add send email 9 years ago
Dmitriy Shesterkin 3ceced5854 fix js, fix scoupe 9 years ago
Dmitriy Shesterkin 1a2d3b7164 add robokassa paymant 9 years ago
Dmitriy Shesterkin f09b5408ae test robokassa 9 years ago
Dmitriy Shesterkin d4bc5b7621 refactor for array 9 years ago
Dmitriy Shesterkin aba374508f add file version for js 9 years ago
Dmitriy Shesterkin 9119722b61 add file version for js 9 years ago
Dmitriy Shesterkin 7a80a94c2e ашч 9 years ago
Dmitriy Shesterkin c68d4c534e makefile 9 years ago
Dmitriy Shesterkin 97c33bba8c filter on orders 9 years ago
Dmitriy Shesterkin a0bdb49f6a ext range in test 9 years ago
Dmitriy Shesterkin 1a2fabc0ba fixs 9 years ago
Dmitriy Shesterkin f8fb2d0d96 filter style 9 years ago
Dmitriy Shesterkin b8c8423333 add stamp, cont filter orders list 9 years ago
Dmitriy Shesterkin 7547ce372b some change in dockerfile 9 years ago
Dmitriy Shesterkin ccfd4b9d7e add act template in pdf for license 9 years ago
Dmitriy Shesterkin b7f6244b34 add invoice template in pdf for license, clear 9 years ago
Dmitriy Shesterkin cad014d17c admin profile field 9 years ago
Dmitriy Shesterkin c100d481f6 admin profile field 9 years ago
Dmitriy Shesterkin 62e0b73d88 del not needed 9 years ago
Dmitriy Shesterkin 97c62b533b add docker image on alpine linux 9 years ago
Dmitriy Shesterkin c35ea47aec add fill database 9 years ago
Dmitriy Shesterkin 540fa9dd3f add fill database 9 years ago
Dmitriy Shesterkin 885da797d0 cut yandex 9 years ago
Dmitriy Shesterkin e0c2c839bb add factories for dumy data 9 years ago
Dmitriy Shesterkin 7f42260960 some fix 9 years ago
Dmitriy Shesterkin c9113bdc6e factories 9 years ago
Dmitriy Shesterkin 7c09b55fa9 fixs 9 years ago
Dmitriy Shesterkin fd26b2ce66 fixs 9 years ago
Dmitriy Shesterkin 5a134cbb41 fixs 9 years ago
Dmitriy Shesterkin 868fb56828 fixs 9 years ago
Dmitriy Shesterkin 7c95d4e2e6 raven settings 9 years ago
Dmitriy Shesterkin 504c6e9af7 refactor debian image, some permisson settings 9 years ago
Dmitriy Shesterkin 0a6ba5738f refactor debian image, some permisson settings 9 years ago
Dmitriy Shesterkin 1944964a49 fix error, requirements 9 years ago
Dmitriy Shesterkin 71c512c262 debian image 9 years ago
Dmitriy Shesterkin 7f1f9412a1 debian image 9 years ago
Dmitriy Shesterkin 62c99d1319 stage settings 9 years ago
Dmitriy Shesterkin 8d03c4a64f fix error, requirements 9 years ago
Dmitriy Shesterkin 4c8fdf35a6 nginx stage vds 9 years ago
Dmitriy Shesterkin 48e5680c34 docker bower 9 years ago
Dmitriy Shesterkin daa205869a docker bower 9 years ago
Dmitriy Shesterkin 7dada6e674 bower container 9 years ago
Dmitriy Shesterkin b9888041f4 bower container 9 years ago
Dmitriy Shesterkin 477bf40549 bower container 9 years ago
Dmitriy Shesterkin 9ef2780512 bower container 9 years ago
Dmitriy Shesterkin be6604cbbd bower container 9 years ago
Dmitriy Shesterkin fa5ba9780e bower container 9 years ago
Dmitriy Shesterkin 95b64ae5bf bower container 9 years ago
Dmitriy Shesterkin 172a57f271 bower container 9 years ago
Dmitriy Shesterkin 617a5cb363 bower container 9 years ago
Dmitriy Shesterkin 65fb08f063 bower container 9 years ago
Dmitriy Shesterkin 014d7286bc version nginx 9 years ago
Dmitriy Shesterkin 2ed4a56167 remade host 9 years ago
Dmitriy Shesterkin 0f0449b054 sentry settings 9 years ago
Dmitriy Shesterkin fd76b3d8c0 some refactor for docker image 9 years ago
Dmitriy Shesterkin 3e48313715 lxml 9 years ago
Dmitriy Shesterkin fc36e6d6e4 lxml 9 years ago
Dmitriy Shesterkin 92f1f75ab2 lxml 9 years ago
Dmitriy Shesterkin 001fee2d6b lxml 9 years ago
Dmitriy Shesterkin b8fa0460a7 some fix 9 years ago
Dmitriy Shesterkin ed585d5e60 some fix 9 years ago
Dmitriy Shesterkin 9c3f4bfcdd some refactor 9 years ago
Dmitriy Shesterkin 92076e9eab add raven==6.1.0 to requirements 9 years ago
Dmitriy Shesterkin 77fc0b9b16 add sentry 9 years ago
Dmitriy Shesterkin a79325ee39 add status icon for license, change icons 9 years ago
Dmitriy Shesterkin 1af783a10e delete button for lic and acound page 9 years ago
Dmitriy Shesterkin 4060f8f992 fix butes 9 years ago
Dmitriy Shesterkin a26d782583 add periodic tasks 9 years ago
Dmitriy Shesterkin e76dbdfcfe add periodic tasks 9 years ago
Dmitriy Shesterkin ae7f424293 add periodic tasks 9 years ago
Dmitriy Shesterkin 0b3db9035e settings flower 9 years ago
Dmitriy Shesterkin e9ba0d6000 flower socket 9 years ago
Dmitriy Shesterkin a08d7d8914 flower 9 years ago
Dmitriy Shesterkin 39d0aaa048 fix 9 years ago
Dmitriy Shesterkin ce3ee704cd fix 9 years ago
Dmitriy Shesterkin d454a8c872 fix flower 9 years ago
Dmitriy Shesterkin 9a3c9ab81a migration 9 years ago
Dmitriy Shesterkin 0ceac31dea settings flower 9 years ago
Dmitriy Shesterkin c3a18ca1a0 add setings for nginx flower 9 years ago
Dmitriy Shesterkin cef18e50d5 add flower 9 years ago
Dmitriy Shesterkin 843d02fcbd add active to admin user list 9 years ago
Dmitriy Shesterkin aef489a9af fix test 9 years ago
Dmitriy Shesterkin 616cbbdcb6 add test 9 years ago
Dmitriy Shesterkin 097aa7514f add task for delete license, add new page license and accounts 9 years ago
Dmitriy Shesterkin e0541b7316 description for function, fix day for sending email for proposal with bonus 9 years ago
Dmitriy Shesterkin 124d08546c bonus maessage 9 years ago
Dmitriy Shesterkin 57fc5c0070 add deploy settings, test for task with message bonus 9 years ago
Dmitriy Shesterkin ebfe8b6055 fix debug toolbar 9 years ago
Dmitriy Shesterkin 9b74e74241 rm settings 9 years ago
Dmitriy Shesterkin 7718eb15e5 flake8 9 years ago
Dmitriy Shesterkin c23071925a fix admin license field date_to 9 years ago
Dmitriy Shesterkin 4d048ed871 add make command for deploy 9 years ago
Dmitriy Shesterkin c59f9995ed add deploy for staging 9 years ago
Dmitriy Shesterkin 2ea2d1a71e fix 9 years ago
Dmitriy Shesterkin 285f3ce54b send bonus email 9 years ago
Dmitriy Shesterkin 841f27ee61 fix test 9 years ago
Dmitriy Shesterkin 280bc58695 mails template 9 years ago
Dmitriy Shesterkin 86d84d3efc remade docker-compose 9 years ago
Dmitriy Shesterkin a1f0821109 fix url 9 years ago
Dmitriy Shesterkin bb4c3cf989 test 9 years ago
Dmitriy Shesterkin 665be60d15 add mail for registration 9 years ago
Dmitriy Shesterkin 877ab9b8bf f-strings 9 years ago
Dmitriy Shesterkin f2d01e4229 fix path 9 years ago
Dmitriy Shesterkin a3cf8dab08 pep 8 tests fix 9 years ago
Dmitriy Shesterkin d381e491de refactor project structure 9 years ago
Dmitriy Shesterkin 8656fc7903 refactor project, add task delete not activated users 9 years ago
Dmitriy Shesterkin 5395a56480 add delete users tasks 9 years ago
Dmitriy Shesterkin 38b719600d not work get_or_create defauls, refactor this 9 years ago
Dmitriy Shesterkin 1c5d5dfa47 start task license 9 years ago
Dmitriy Shesterkin dc6f4b0140 add operate image buttons 9 years ago
Dmitriy Shesterkin d78e17fd9e add spinner 9 years ago
Dmitriy Shesterkin 71b98249d5 feature media handler for stamp and sign 9 years ago
Dmitriy Shesterkin 99b28ce2d9 feature media handler for stamp and sign 9 years ago
Dmitriy Shesterkin 2c337b5c1c frontend for add stamp crop image, test only stamp 9 years ago
Dmitriy Shesterkin 2ba0771c94 fix 9 years ago
Dmitriy Shesterkin b7a228187f fix 9 years ago
Dmitriy Shesterkin b1b0c466a8 bower 9 years ago
Dmitriy Shesterkin f065f416e4 refactor frontend lib, add bower 9 years ago
Dmitriy Shesterkin 65a815fe57 refactor frontend lib, add bower 9 years ago
Dmitriy Shesterkin f1ca23ce6e mekup doc faktura, some pep8 9 years ago
Dmitriy Shesterkin 8d21128bf6 pep8 9 years ago
Dmitriy Shesterkin f9121c9c16 pep8 9 years ago
Dmitriy Shesterkin 107f7684df def lambda dthandler to def 9 years ago
Dmitriy Shesterkin 9c682d0e6b del comment 9 years ago
Dmitriy Shesterkin 217fec134b meckup factura 9 years ago
Dmitriy Shesterkin 13a4817794 dockerfile 9 years ago
Dmitriy Shesterkin 577a3bbf86 add nds methot to faktura 9 years ago
Dmitriy Shesterkin 01bec7e8ad add nds methot to nakladn 9 years ago
Dmitriy Shesterkin 436b51fe85 add nds methot to invoce 9 years ago
Dmitriy Shesterkin 95c4b5f661 add nds methot to invoce 9 years ago
Dmitriy Shesterkin f63e73bc0d add nds metod to akt rabot 9 years ago
Dmitriy Shesterkin fc4f074b60 add show nds in edit document - akt 9 years ago
Dmitriy Shesterkin b1e23781d5 NDS in front 9 years ago
Dmitriy Shesterkin cb39a7720a start add method for calculating nds 9 years ago
Dmitriy Shesterkin 62825d159a add calculate methot for nds 9 years ago
Dmitriy Shesterkin 96394ec472 add tags fix 9 years ago
Dmitriy Shesterkin c62e6e731b add tags 9 years ago
Dmitriy Shesterkin 595674dc28 some refactor in docer-compose and Docker- add nginx from source 9 years ago
Dmitriy Shesterkin f65b4fe4e4 some refactor in docer-compose and Docker- add nginx from source 9 years ago
Dmitriy Shesterkin 01cbd02108 some frontend fix 9 years ago
Dmitriy Shesterkin c3b54dcd9e some fix 9 years ago
Dmitriy Shesterkin 9e23e63aee fix frontend 9 years ago
Dmitriy Shesterkin 4e600889c5 fix first account add 9 years ago
Dmitriy Shesterkin 7314d159d3 fix payment assignment 9 years ago
Dmitriy Shesterkin b7c32f2091 fix ordering img 9 years ago
Dmitriy Shesterkin 4dbd2c4fd2 fix ordering img 9 years ago
Dmitriy Shesterkin 8a22e174cd fix frontand add items btn 9 years ago
Dmitriy Shesterkin 82c5103547 add tfoot, task 24 9 years ago
Dmitriy Shesterkin 57918662c8 task 25 9 years ago
Dmitriy Shesterkin 701d554807 task 22 9 years ago
Dmitriy Shesterkin c10695e42c fix GHOSTSCRIPTCMD 9 years ago
Dmitriy Shesterkin 81fcda5df2 fix color link form 9 years ago
Dmitriy Shesterkin de216cf93f bank field dadata api inputs 9 years ago
Dmitriy Shesterkin b8d6940e0f fix tasks 23 9 years ago
Dmitriy Shesterkin 2f32a799cd stage settings 9 years ago
Dmitriy Shesterkin 40940c4007 text on clear org data 9 years ago
Dmitriy Shesterkin 4d79a649c1 add restart docker 9 years ago
Dmitriy Shesterkin 6bc7f2be86 fix env 9 years ago
Dmitriy Shesterkin c510456cbf fix settings 9 years ago
Dmitriy Shesterkin a27dd3dd28 docker production 9 years ago
Dmitriy Shesterkin 4843c13525 nginx for develop vds 9 years ago
Dmitriy Shesterkin b5f3c1e2b8 docker production - fix 9 years ago
Dmitriy Shesterkin 579ae7514e docker production 9 years ago
Dmitriy Shesterkin 98043000e1 fix arrow 9 years ago
Dmitriy Shesterkin 25aed60ce7 start docker-composer 9 years ago
Dmitriy Shesterkin 26a1be29a2 settings for deploy 9 years ago
Dmitriy Shesterkin 4d1bd790a6 apps name 9 years ago
Dmitriy Shesterkin 6efe7869f6 docker settings 9 years ago
Dmitriy Shesterkin b35d0d670d fix for update, update django 1.8 => 1.8.18 9 years ago
Dmitriy Shesterkin 68d26aed66 add check count account in template 9 years ago
Dmitriy Shesterkin 415435b17d add format input invoce string 9 years ago
Dmitriy Shesterkin 64c5809f65 vaersion formset in base html 9 years ago
Dmitriy Shesterkin 91d938289a fix calc summ 9 years ago
Dmitriy Shesterkin 45a7bf49fd add migration 9 years ago
Dmitriy Shesterkin 316356ceb9 fix bank short name 9 years ago
Dmitriy Shesterkin 0fcd633da1 short name for save 9 years ago
Dmitriy Shesterkin 469e1692f1 placeholder partner 9 years ago
Dmitriy Shesterkin 748cdbfef1 add hidden class in form nakladn, factura 9 years ago
Dmitriy Shesterkin 9639465a1b some task, add js logic on show/hide basis 9 years ago
Dmitriy Shesterkin 08a70243c6 delete bank accoun in documents form 9 years ago
Dmitriy Shesterkin bd7f1a39cd Added validate account in profile 9 years ago
Dmitriy Shesterkin 54bf195a07 some refactor, add function clear errors on form added client 9 years ago
Dmitriy Shesterkin 7b75159aa2 parther check inn 9 years ago
Dmitriy Shesterkin f03fc5f043 Added custom tag - for check md5 file hash.Added him in template for custom js scripts 9 years ago
Dmitriy Shesterkin f280d9dac3 fix bug clear 9 years ago
Dmitriy Shesterkin 9e6970c86a search client form js 9 years ago
Dmitriy Shesterkin 3e69e25afb add comand in makefile for run worker celery 9 years ago
Dmitriy Shesterkin e097f0e8cb revert change 9 years ago
Dmitriy Shesterkin 017d2c5c17 remade makefile 9 years ago
Dmitriy Shesterkin 8c61d6ea7f some project refactor 9 years ago
Dmitriy Shesterkin d7dfc47fbe comment console.log 9 years ago
Dmitriy Shesterkin aab0941587 add short name at individual entrepreneur in form add partner 9 years ago
Dmitriy Shesterkin f2b5ae2294 the payment order to pdf 9 years ago
Dmitriy Shesterkin e648ad98bb commission to pdf 9 years ago
Dmitriy Shesterkin 02bf4381cc the reconciliation report 9 years ago
Dmitriy Shesterkin e4e2dfe5c8 texture pdf 9 years ago
Dmitriy Shesterkin fdcc1e1261 pdf consignment 9 years ago
Dmitriy Shesterkin 77f2f8579b start fix consignment 9 years ago
Dmitriy Shesterkin d1caa6ee50 fix trim 9 years ago
Dmitriy Shesterkin 03e3026bcb callback settings 9 years ago
Dmitriy Shesterkin dd014a99bc pdf template akt, invoice, stage settings 9 years ago
Dmitriy Shesterkin 774c3d1833 alignment in invoice html-pdf template 9 years ago
Dmitriy Shesterkin 666a898ffc disabled input detail docs 9 years ago
Dmitriy Shesterkin af75ca2e44 disabled input detail docs 9 years ago
Dmitriy Shesterkin 0cbdece483 autocomplete plaseholder 9 years ago
Dmitriy Shesterkin 6a3221d0cf add partner form, fix dadata api in docs add template 9 years ago
Dmitriy Shesterkin 0fa9d33768 settings for stage 9 years ago
Dmitriy Shesterkin f35cc3c821 callback settings 9 years ago
Dmitriy Shesterkin d31e6d3555 migration 9 years ago
Dmitriy Shesterkin f06e38110b fix callback form 9 years ago
Dmitriy Shesterkin 70e9d880d1 TODO 9 years ago
Dmitriy Shesterkin cb13aee454 download pdf, refactor xls 9 years ago
Dmitriy Shesterkin 4dd05235a4 fix save image if png 9 years ago
Dmitriy Shesterkin 892749a7a6 fix save image if png 9 years ago
Dmitriy Shesterkin d3a9482024 settings for stage 9 years ago
Dmitriy Shesterkin 82a10b10fb return chmod dir for nginx 9 years ago
Dmitriy Shesterkin 2bb2d2fc39 . 9 years ago
Dmitriy Shesterkin 15987fec37 fix readme, local deploy 9 years ago
Dmitriy Shesterkin 19b2ef064a entrypoint 9 years ago
Dmitriy Shesterkin 023b54a807 fix path 9 years ago
Dmitriy Shesterkin 660a9b93e0 fix path 9 years ago
Dmitriy Shesterkin b856b60c47 add docker entrypoint script 9 years ago
Dmitriy Shesterkin e660ae61a0 migrations script 9 years ago
Dmitriy Shesterkin 328c5b068c DockerMakefile 9 years ago
Dmitriy Shesterkin 4fb24b7e8a del container name for runs few instance of the app on server 9 years ago
Dmitriy Shesterkin f4a16a66d3 fix migration, comment for transfer on Django 1.9 9 years ago
Dmitriy Shesterkin 732aa11010 disable warnings when running django manage.py 9 years ago
Dmitriy Shesterkin d2adfed8b0 fix migration script 9 years ago
Dmitriy Shesterkin d48081ef80 fix migrations 9 years ago
Dmitriy Shesterkin 2a2e0ab559 fix migrations 9 years ago
Dmitriy Shesterkin feb31758ad readme, fix some docker config 9 years ago
Dmitriy Shesterkin 7e840cc3bd docker 9 years ago
Dmitriy Shesterkin ed2a36599d change static url 9 years ago
Dmitriy Shesterkin 731c307562 add try in subprocess pdf to png 9 years ago
Dmitriy Shesterkin c6153f6818 refactor pdf to png method on subprocess, add media url for develop mode 9 years ago
Dmitriy Shesterkin 01df2c8f42 add parts template 9 years ago
Dmitriy Shesterkin 1d4916d0b7 rm config env 9 years ago
Dmitriy Shesterkin dd5030d156 Running the Celery worker server 9 years ago
Dmitriy Shesterkin d58bfce705 12 fact apps 9 years ago
Dmitriy Shesterkin f25bc4b0fd new migrations, some refactor 9 years ago
Dmitriy Shesterkin 1dc0159d86 refactor settings, pdf 9 years ago
Dmitriy Shesterkin d3c5782db6 fix some celery tasks, python3 9 years ago
Dmitriy Shesterkin 57c6f998de rename source dir 9 years ago
Dmitriy Shesterkin 45ac1b89da requirements: refactor 9 years ago
Dmitriy Shesterkin 21295c2c39 requirements: refactor 9 years ago
Dmitriy Shesterkin c420a4a250 add ckeditor text fixtures 9 years ago
Dmitriy Shesterkin 05a3fbd35a refactor makefile, fixtures 9 years ago
Dmitriy Shesterkin 0ac33cf832 add fixtures, django-cms ckeditor settings, requirements 9 years ago
Dmitriy Shesterkin 9124131128 readme 9 years ago
Dmitriy Shesterkin f82345e488 readme file 9 years ago
Dmitriy Shesterkin 3a0fc837fe readme file 9 years ago
Dmitriy Shesterkin fb1d38838a make change for refactor 9 years ago
Dmitriy Shesterkin 51fdf86b18 requirements for python3, add skeleton for develop settings 9 years ago
Dmitriy Shesterkin 4ab238ed58 requirements fix 9 years ago
Dmitriy Shesterkin b28db267c9 requirements for python3 9 years ago
Dmitriy Shesterkin 5f4cdb01d0 refactor for python3 9 years ago
Dmitriy Shesterkin 3af504dd82 requirements for transfer to python 3 for next update libs 9 years ago
Dmitriy Shesterkin 0de5340f1a fix str to UserProfileFilters 9 years ago
Dmitriy Shesterkin 2c8a71eaa0 fix celery 9 years ago
Dmitriy Shesterkin 88d3aff6e9 start fix error, update pkg version 9 years ago
Dmitriy Shesterkin b0511b2ed5 add code from dev server 9 years ago
apache 3d26a8444f правки с сервера: 1) callback templates; 2) css for filters panel 9 years ago
Dmitriy Shesterkin 56f79f73d8 refactor, add js api dadata in docs 9 years ago
  1. 3
      .bowerrc
  2. 15
      .dockerignore
  3. 58
      .editorconfig
  4. 28
      .eslintrc.js
  5. 17
      .gitattributes
  6. 216
      .gitignore
  7. 106
      Dockerfile
  8. 106
      Dockerfile-prod
  9. 134
      Makefile
  10. 8
      README
  11. 61
      README.md
  12. 33
      bin/loaddata.sh
  13. 25
      bin/uploaddata.sh
  14. 30
      bower.json
  15. 9
      conf/compose/Dockerfile
  16. 6
      conf/deploy/common.py
  17. 4
      conf/deploy/develop.py
  18. 5
      conf/deploy/prod.py
  19. 5
      conf/deploy/stage.py.example
  20. 25
      conf/docker/entrypoint_prod.sh
  21. 29
      conf/docker/entrypoint_stage.sh
  22. 24
      conf/env.local
  23. 27
      conf/env.stage
  24. 24
      conf/env.template
  25. 13
      conf/flower_conf.py
  26. 44
      conf/gunicorn_logging.ini
  27. 67
      conf/gunicorn_prod.py
  28. 66
      conf/nginx.conf
  29. 29
      conf/nginx_vds_develop.conf
  30. 41
      conf/nginx_vds_prod_ssl.conf
  31. 29
      conf/nginx_vds_stage.conf
  32. 95
      conf/ssl-keys/dokumentor.ru.crt
  33. 51
      conf/ssl-keys/dokumentor.ru.key
  34. 56
      conf/supervisor.conf
  35. 19
      diff_static.sh
  36. 66
      docker-compose.develop.yml
  37. 56
      docker-compose.local.yml
  38. 66
      docker-compose.stage.yml
  39. 68
      docker-compose.yml
  40. BIN
      extra/boss_sign.png
  41. BIN
      extra/gb_sign.png
  42. BIN
      extra/stamp.png
  43. 83
      fabfile.py
  44. 1
      log/.gitignore
  45. 10
      manage.py
  46. 4
      project/__init__.py
  47. 44
      project/callback/models.py
  48. 24
      project/celery.py
  49. 3
      project/commons/models.py
  50. 30
      project/commons/pdf_tools.py
  51. 19
      project/commons/utils.py
  52. 1
      project/commons/views.py
  53. 3
      project/commons/xls/__init__.py
  54. 12
      project/commons/xls/xls_to_response.py
  55. 2
      project/customer/__init__.py
  56. 67
      project/customer/admin.py
  57. 32
      project/customer/consts.py
  58. 41
      project/customer/context_processors.py
  59. 289
      project/customer/migrations/0001_initial.py
  60. 147
      project/customer/migrations/0002_auto__add_field_userprofilefilters_show_logo.py
  61. 148
      project/customer/migrations/0003_auto__add_field_userprofilefilters_show_address.py
  62. 156
      project/customer/migrations/0004_auto__del_field_client_contact_icq__add_field_client_ogrn.py
  63. 149
      project/customer/migrations/0005_auto__add_field_bankaccount_short_name.py
  64. 516
      project/customer/models.py
  65. 33
      project/customer/tasks.py
  66. 16
      project/customer/tests.py
  67. 63
      project/customer/urls.py
  68. 86
      project/customer/utils.py
  69. 105
      project/customer/views/docs.py
  70. 161
      project/customer/views/license.py
  71. 282
      project/customer/views/profile.py
  72. 1
      project/docs/as_xls/__init__.py
  73. 147
      project/docs/consts.py
  74. 201
      project/docs/filters.py
  75. 9
      project/docs/forms/__init__.py
  76. 21
      project/docs/forms/email.py
  77. 673
      project/docs/migrations/0001_initial.py
  78. 424
      project/docs/migrations/0002_auto__add_field_measure_full_name__chg_field_measure_code__chg_field_m.py
  79. 373
      project/docs/migrations/0003_auto__add_field_currency_order.py
  80. 374
      project/docs/migrations/0004_auto__add_field_measure_order.py
  81. 375
      project/docs/migrations/0005_auto__add_field_country_order.py
  82. 377
      project/docs/migrations/0006_auto__add_field_nakladnitem_units_kod.py
  83. 387
      project/docs/migrations/0007_nakladnitem_fix_units.py
  84. 382
      project/docs/migrations/0008_nakladnitem_set_units_kod.py
  85. 8
      project/docs/models/__init__.py
  86. 54
      project/docs/models/aktsverki.py
  87. 101
      project/docs/models/base_models.py
  88. 42
      project/docs/models/dover.py
  89. 64
      project/docs/models/faktura.py
  90. 35
      project/docs/models/invoice.py
  91. 22
      project/docs/models/mixins.py
  92. 26
      project/docs/models/nakladn.py
  93. 104
      project/docs/models/platejka.py
  94. 16
      project/docs/tests.py
  95. 81
      project/docs/urls.py
  96. 30
      project/docs/views/__init__.py
  97. 71
      project/docs/views/dover.py
  98. 84
      project/docs/views/invoice.py
  99. 58
      project/docs/views/platejka.py
  100. 84
      project/index_blocks/cms_plugins.py
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,3 @@
{
"directory": "static/vendor"
}

@ -0,0 +1,15 @@
/env
/compose
/public
/node_modules
/bower_components
/tmp_emails
/tmp
/var
/db
/docker-compose.yml
/Dockerfile
/README.md
/db.sqlite3
/.vscode/
/upload/

@ -0,0 +1,58 @@
# EditorConfig is awesome: http://EditorConfig.org
# Howto with your editor: http://editorconfig.org/#download
# Sublime: https://github.com/sindresorhus/editorconfig-sublime
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[**]
end_of_line = lf
insert_final_newline = true
# Standard at: https://github.com/felixge/node-style-guide
[**.{js,json}]
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
quote_type = single
curly_bracket_next_line = false
spaces_around_operators = true
space_after_control_statements = true
space_after_anonymous_functions = true
spaces_in_brackets = false
# No Standard. Please document a standard if different from .js
[**.{yml,css}]
trim_trailing_whitespace = true
indent_style = tab
[**.html]
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
# No standard. Please document a standard if different from .js
[**.md]
indent_style = tab
[**.py]
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
# Standard at:
[Makefile]
indent_style = tab
[**.yml]
trim_trailing_whitespace = true
indent_style = space
indent_size = 4
# The indentation in package.json will always need to be 2 spaces
# https://github.com/npm/npm/issues/4718
[{package, bower}.json]
indent_style = space
indent_size = 2

@ -0,0 +1,28 @@
var OFF = 0, WARN = 1, ERROR = 2;
module.exports = exports = {
"root": true,
env: {
'es6': true, // We are writing ES6 code
'browser': true, // for the browser
'commonjs': true // and use require() for stylesheets
},
"parserOptions": {
"ecmaFeatures": {
"modules": true
},
"sourceType": "module"
},
"rules":{
"no-console": OFF,
"jsx-quotes": WARN,
"no-unused-vars": WARN,
"no-undef": WARN
},
"globals": {
"$": true
},
"extends": ["eslint:recommended"]
};

17
.gitattributes vendored

@ -0,0 +1,17 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

216
.gitignore vendored

@ -1,18 +1,204 @@
*.*~
*.pyc
.DS_Store
._*
pip-log.txt
ENV/
.idea/
local_settings.py
Thumbs.db
distribute-*.tar.gz
*.bak
*.swp
_public_html/
celerybeat-schedule
yandex_money.log
/tmp_emails/
/tmp/
/celerybeat-schedule.db
/db/
/public/
conf/env
!local.py
!parts
!.gitkeep
!form.html
/static/vendor
/data/
/.vscode/
######################All system################################################
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
*.sqlite3
*.fdb
*.gdb
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
################################################################################
####################JetBrains###################################################
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
*.iml
## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
# Gradle:
# .idea/gradle.xml
# .idea/libraries
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
################################################################################
################## OSX.gitignore ###############################################
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
################################################################################
#######################Python.gitignore#########################################
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
#lib
lib64/
parts/
sdist/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
# Translations
*.mo
*.pot
# Sphinx documentation
docs/_build/
# PyBuilder
target/
################################################################################
##############################Sass.gitignore####################################
.sass-cache/
*.css.map
################################################################################
/upload/
/conf/deploy/develop.py
/conf/deploy/prod.py
!/templates/docs/parts/

@ -0,0 +1,106 @@
FROM alpine:latest
ENV NGINX_VERSION="1.13.2" \
NGINX_OPTS="--with-http_ssl_module \
--with-http_gzip_static_module \
--prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--pid-path=/var/run/nginx.pid \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--user=nginx \
--group=nginx \
--add-module=/tmp/modules/nginx_requestid-master"
COPY requirements /opt/app/requirements
RUN apk update && apk add --update --no-cache --progress \
make \
pcre \
zlib \
libpq \
openssl \
ca-certificates \
python3 \
libxml2-dev \
py-libxml2 \
libxml2-utils \
libxslt-dev \
libmagic \
ghostscript \
supervisor \
cyrus-sasl-dev \
jpeg libpng freetype \
bash bash-completion \
gettext-dev \
libtool \
mailcap \
libgomp \
jpeg-dev \
expat \
tcl-dev \
tk-dev \
&& apk add --no-cache --virtual=.build-dependencies \
musl-dev \
curl \
build-base \
postgresql-dev \
ncurses-dev \
pcre-dev \
zlib-dev \
libpng-dev \
tiff-dev \
lcms2-dev \
libwebp-dev \
libffi-dev \
ttf-freefont \
python3-dev \
&& python3 -m ensurepip \
&& rm -r /usr/lib/python*/ensurepip \
&& pip3 install --upgrade pip setuptools \
&& pip3 install --no-cache-dir -r /opt/app/requirements/production.txt \
# Add nginx group and user
&& addgroup -S nginx \
&& adduser -S nginx -G nginx \
# Download additional nginx modules
&& mkdir -p /tmp/modules \
&& cd /tmp/modules \
&& wget -O nginx-requestid.tar.gz https://github.com/hhru/nginx_requestid/archive/master.tar.gz \
&& tar xvzf nginx-requestid.tar.gz \
# Download and compile nginx
&& cd /tmp \
&& curl -fSL http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz -o nginx-${NGINX_VERSION}.tar.gz \
&& tar xzvf nginx-${NGINX_VERSION}.tar.gz \
&& cd nginx-${NGINX_VERSION} \
&& ./configure ${NGINX_OPTS} \
&& make \
&& make install \
# Delete build dependencies after use
&& cd /tmp \
&& apk del .build-dependencies \
&& rm -rf \
modules \
nginx-${NGINX_VERSION} \
nginx-${NGINX_VERSION}.tar.gz \
/var/cache/apk/* \
/root/.cache \
# Security precautions
&& openssl rand -base64 32 > /opt/app/secret_key.txt \
&& echo "root:$(openssl passwd -apr1 uztOsdwP)" >> /etc/nginx/.htpasswd
#COPY . /opt/app
#VOLUME ["/opt/app/public/media"]
WORKDIR /opt/app
RUN rm -v /etc/nginx/nginx.conf
ADD /conf/nginx.conf /etc/nginx/
EXPOSE 80
CMD ["conf/docker/entrypoint_stage.sh"]

@ -0,0 +1,106 @@
FROM alpine:latest
ENV NGINX_VERSION="1.13.2" \
NGINX_OPTS="--with-http_ssl_module \
--with-http_gzip_static_module \
--prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--pid-path=/var/run/nginx.pid \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--user=nginx \
--group=nginx \
--add-module=/tmp/modules/nginx_requestid-master"
COPY requirements /opt/app/requirements
RUN apk update && apk add --update --no-cache --progress \
make \
pcre \
zlib \
libpq \
openssl \
ca-certificates \
python3 \
libxml2-dev \
py-libxml2 \
libxml2-utils \
libxslt-dev \
libmagic \
ghostscript \
supervisor \
cyrus-sasl-dev \
jpeg libpng freetype \
bash bash-completion \
gettext-dev \
libtool \
mailcap \
libgomp \
jpeg-dev \
expat \
tcl-dev \
tk-dev \
&& apk add --no-cache --virtual=.build-dependencies \
musl-dev \
curl \
build-base \
postgresql-dev \
ncurses-dev \
pcre-dev \
zlib-dev \
libpng-dev \
tiff-dev \
lcms2-dev \
libwebp-dev \
libffi-dev \
ttf-freefont \
python3-dev \
&& python3 -m ensurepip \
&& rm -r /usr/lib/python*/ensurepip \
&& pip3 install --upgrade pip setuptools \
&& pip3 install --no-cache-dir -r /opt/app/requirements/production.txt \
# Add nginx group and user
&& addgroup -S nginx \
&& adduser -S nginx -G nginx \
# Download additional nginx modules
&& mkdir -p /tmp/modules \
&& cd /tmp/modules \
&& wget -O nginx-requestid.tar.gz https://github.com/hhru/nginx_requestid/archive/master.tar.gz \
&& tar xvzf nginx-requestid.tar.gz \
# Download and compile nginx
&& cd /tmp \
&& curl -fSL http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz -o nginx-${NGINX_VERSION}.tar.gz \
&& tar xzvf nginx-${NGINX_VERSION}.tar.gz \
&& cd nginx-${NGINX_VERSION} \
&& ./configure ${NGINX_OPTS} \
&& make \
&& make install \
# Delete build dependencies after use
&& cd /tmp \
&& apk del .build-dependencies \
&& rm -rf \
modules \
nginx-${NGINX_VERSION} \
nginx-${NGINX_VERSION}.tar.gz \
/var/cache/apk/* \
/root/.cache \
# Security precautions
&& openssl rand -base64 32 > /opt/app/secret_key.txt \
&& echo "root:$(openssl passwd -apr1 uztOsdwP)" >> /etc/nginx/.htpasswd
#COPY . /opt/app
#VOLUME ["/opt/app/public/media"]
WORKDIR /opt/app
RUN rm -v /etc/nginx/nginx.conf
ADD /conf/nginx.conf /etc/nginx/
EXPOSE 80
CMD ["conf/docker/entrypoint_stage.sh"]

@ -0,0 +1,134 @@
.PHONY:
all
help
build
virtualenv
requirements-local
loaddata
run
migrate
shell
collectstatic
clean
worker
qa
flush
update-develop
upgrade-develop
update-develop
upgrade-develop
update-stage
upgrade-stage
# target: all - Default target. Does nothing.
all:
@clear
@echo "Hello $(LOGNAME), nothing to do by default"
@echo "Try 'make help'"
# target: help - Display callable targets.
help:
@clear
@egrep "^# target:" [Mm]akefile
# target: build - Build all docker containers, defined in docker-compose.yml
build:
docker-compose build
# target: virtualenv - Make virtualenv
virtualenv:
virtualenv -p python3 env --no-site-packages
# target: requirements-local - Install requirements for local develop
requirements-local:
$(PIP) install -r requirements/local.txt
# target: loaddata - Load fixtures
loaddata:
python3 manage.py loaddata src/myauth/fixtures/myauth.json
python3 manage.py loaddata src/commons/fixtures/cms.json
python3 manage.py loaddata src/commons/fixtures/djangocms_text_ckeditor.json
python3 manage.py loaddata src/commons/fixtures/sites.json
python3 manage.py loaddata src/customer/fixtures/price.json
python3 manage.py loaddata src/docs/fixtures/country.json
python3 manage.py loaddata src/docs/fixtures/currency.json
python3 manage.py loaddata src/docs/fixtures/measure.json
# target: run - Runserver
run:
python3 manage.py runserver 0.0.0.0:8000
# target: migrate - Build all docker containers, defined in docker-compose.stage.yml
migrate:
python3 manage.py migrate myauth --noinput
python3 manage.py migrate --noinput
# target: shell - Run python shell
shell:
python3 manage.py shell
# target: collectstatic - Run collectstatic
collectstatic:
python3 manage.py collectstatic --noinput
clean_temp:
find . -name '*.pyc' -delete
rm -rf .coverage dist docs/_build htmlcov MANIFEST
rm -rf media/
clean_db:
find . -name '*.sqlite3' -delete
clean_venv:
rm -rf $(VENV_DIR)
# target: clean - Clean all temp files
clean: clean_temp clean_venv clean_db
# target: worker - Run celery worker
worker:
celery -A src.dokumentor worker -l info -E -B
# target: flower - Run celery flower on port 5555
flower:
celery -A src.dokumentor flower -l info -E -B --port=5555
# target: qa - Run pytest
qa:
pytest
# target: flush - clean database
flush:
python3 manage.py flush
# target: update-develop - Run push change in repo develop branch and deploy for develop server with restart only web container
update-develop:
git push origin develop
fab develop update
# target: upgrade-develop - Run push change in repo develop branch and deploy for develop server with rebuild container
upgrade-develop:
git push origin develop
fab develop upgrade
# target: update-stage - Run push change in repo master branch and deploy for stage server with restart only web container
update-stage:
git push origin prod
fab stage update
# target: upgrade-stage - Run push change in repo master branch and deploy for stage server with rebuild container
upgrade-stage:
git push origin prod
fab stage upgrade
# target: update-prod - Run push change in repo master branch and deploy for prod server with restart only web container
update-prod:
git push origin prod
fab prod update
# target: upgrade-prod - Run push change in repo master branch and deploy for prod server with rebuild container
upgrade-prod:
git push origin prod
fab prod upgrade

@ -1,8 +0,0 @@
Документор
===
Если не работает локаль ru в autocomplete_light, то значит надо её скомпилировать:
msgfmt django.po --output-file django.mo

@ -0,0 +1,61 @@
# Dokumentor
Сервис для создания и хранения первичных бухгалтерских документов.
## Установка dev версии
Клонируем проект
```bash
git clone https://bitbucket.org/Air51/dokumentor_dev dokumentor
```
Переходим в папку проекта
```bash
cd dokumentor
```
Пеерключаемся в ветку develop
```bash
git checkout develop
```
### Установка проекта для разработки вручную
Создаем окружение и ставим зависимости
```bash
virtualenv --python=python3 env
source env/bin/activate
pip install -r requirements/local.txt
```
### Настройка окружения
Копируем файл с переменными окружения
```bash
cp conf/env.template conf/env
```
и прописывем в `conf/env` свои данные
Накатываем миграции и заполняем базу данных
```bash
make migrate
```
Загружаем фикстуры
```bash
make loaddata
```
### Установка проекта для разработки
Для разработки проект можно развернуть выполив
```bash
make run
```
###Запуск сервера Celery
```bash
make worker
```
###Запуск Тестов
```bash
make qa
```

@ -0,0 +1,33 @@
#!/usr/bin/env bash
# dictionaries
python3 manage.py loaddata src/myauth/fixtures/myauth.json
python3 manage.py loaddata src/commons/fixtures/cms.json
python3 manage.py loaddata src/commons/fixtures/djangocms_text_ckeditor.json
python3 manage.py loaddata src/commons/fixtures/sites.json
python3 manage.py loaddata src/customer/fixtures/price.json
python3 manage.py loaddata src/docs/fixtures/country.json
python3 manage.py loaddata src/docs/fixtures/currency.json
python3 manage.py loaddata src/docs/fixtures/measure.json
# customer
python3 manage.py loaddata upload/customer.userprofile.json
python3 manage.py loaddata upload/customer.bankaccount.json
python3 manage.py loaddata upload/customer.client.json
python3 manage.py loaddata upload/customer.license.json
# myauth
python3 manage.py loaddata upload/myauth.json
# docs
python3 manage.py loaddata upload/docs.invoice.json
python3 manage.py loaddata upload/docs.invoiceitem.json
python3 manage.py loaddata upload/docs.aktrabot.json
python3 manage.py loaddata upload/docs.aktrabotitem.json
python3 manage.py loaddata upload/docs.aktsverki.json
python3 manage.py loaddata upload/docs.aktsverkiitem.json
python3 manage.py loaddata upload/docs.dover.json
python3 manage.py loaddata upload/docs.doveritem.json
python3 manage.py loaddata upload/docs.nakladn.json
python3 manage.py loaddata upload/docs.nakladnitem.json
python3 manage.py loaddata upload/docs.platejka.json
python3 manage.py loaddata upload/docs.faktura.json
python3 manage.py loaddata upload/docs.fakturaitem.json
# callback
python3 manage.py loaddata upload/callback.json

@ -0,0 +1,25 @@
#!/usr/bin/env bash
mkdir upload
# myauth
python manage.py dumpdata myauth --indent=4 > upload/myauth.json
# customer
python manage.py dumpdata customer.userprofile --indent=4 > upload/customer.userprofile.json
python manage.py dumpdata customer.bankaccount --indent=4 > upload/customer.bankaccount.json
python manage.py dumpdata customer.client --indent=4 > upload/customer.client.json
python manage.py dumpdata customer.license --indent=4 > upload/customer.license.json
# docs
python manage.py dumpdata docs.aktrabot --indent=4 > upload/docs.aktrabot.json
python manage.py dumpdata docs.aktrabotitem --indent=4 > upload/docs.aktrabotitem.json
python manage.py dumpdata docs.aktsverki --indent=4 > upload/docs.aktsverki.json
python manage.py dumpdata docs.aktsverkiitem --indent=4 > upload/docs.aktsverkiitem.json
python manage.py dumpdata docs.dover --indent=4 > upload/docs.dover.json
python manage.py dumpdata docs.doveritem --indent=4 > upload/docs.doveritem.json
python manage.py dumpdata docs.nakladn --indent=4 > upload/docs.nakladn.json
python manage.py dumpdata docs.nakladnitem --indent=4 > upload/docs.nakladnitem.json
python manage.py dumpdata docs.platejka --indent=4 > upload/docs.platejka.json
python manage.py dumpdata docs.invoice --indent=4 > upload/docs.invoice.json
python manage.py dumpdata docs.invoiceitem --indent=4 > upload/docs.invoiceitem.json
python manage.py dumpdata docs.faktura --indent=4 > upload/docs.faktura.json
python manage.py dumpdata docs.fakturaitem --indent=4 > upload/docs.fakturaitem.json
# callback
python manage.py dumpdata callback --indent=4 > upload/callback.json

@ -0,0 +1,30 @@
{
"name": "dokumentor",
"authors": [
"Dmitriy Shesterkin <mitri4@bk.ru>"
],
"description": "",
"main": "",
"license": "MIT",
"homepage": "",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"static/vendor",
"test",
"tests"
],
"dependencies": {
"Croppie": "croppie#^2.4.1",
"handlebars": "^4.0.10",
"jquery.cookie": "^1.4.1",
"suggestions.jquery": "^16.10.3",
"jquery": "1.10.2",
"jquery-ui": "1.10.3",
"blockUI": "*",
"django-dynamic-formset": "*",
"jquery-form": "3.37.0",
"list.js": "^1.5.0"
}
}

@ -0,0 +1,9 @@
FROM mhart/alpine-node:6.2.0
RUN apk --update add git nodejs \
&& rm -rf /var/cache/apk/* \
&& npm install -g bower && \
echo '{ "allow_root": true }' > /root/.bowerrc
WORKDIR /opt/app
CMD ["/bin/sh"]

@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
PROJECT_NAME = 'Dokumentor'
PROJECT_NAME_DEVELOP = 'dokumentor'
REPO = 'git@bitbucket.org:Air51/dokumentor_dev.git'
BRANCH_PROD = 'prod'
BRANCH_DEVELOP = 'develop'

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
USER = 'mitri4'
PASS = '9091324913Dasha'
HOSTS = ['lets-dev.ru:10022']

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
USER = 'root'
PASS = 'fS0h7hC87dCY'
HOSTS = ['185.204.0.134:22']

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
USER = 'username'
PASS = 'password'
HOSTS = ['domain_name:ssh_port']

@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -e
set -u
export ENV=prod
export BRANCH=prod
cd /opt/app
# Collect static files
echo "Collect static files"
python3 manage.py collectstatic --noinput
# Make database migrations
echo "Make database migrations"
python3 manage.py makemigrations
# Apply database migrations
echo "Apply database migrations"
python3 manage.py migrate myauth --noinput
python3 manage.py migrate --noinput
supervisord -c /opt/app/conf/supervisor.conf

@ -0,0 +1,29 @@
#!/usr/bin/env bash
set -e
set -u
export ENV=stage
export BRANCH=develop
cd /opt/app
# Collect static files
echo "Collect static files"
python3 manage.py collectstatic --noinput
# Make database migrations
echo "Make database migrations"
python3 manage.py makemigrations
# Apply database migrations
echo "Apply database migrations"
python3 manage.py migrate myauth --noinput
python3 manage.py migrate --noinput
#pip3 install -r requirements/test.txt
#python3 manage.py dummydata --number 100 # Load dummy data for testing interface
supervisord -c /opt/app/conf/supervisor.conf

@ -0,0 +1,24 @@
DJANGO_SETTINGS_MODULE='src.dokumentor.settings.local'
DJANGO_SECRET='CHANGE_ME_IN_PRODUCTION'
SSL=False
DJANGO_DB='postgres://dokumentor:dokumentor@localhost:5432/dokumentor'
DJANGO_TEST_DB='sqlite:////Users/mitri4/Projects/dokumentor/test_db.sqlite3'
DJANGO_FROM_EMAIL='root@localhost'
DJANGO_EMAIL_HOST=''
DJANGO_EMAIL_PORT=''
DJANGO_EMAIL_USER=''
DJANGO_EMAIL_PASSWORD=''
DJANGO_EMAIL_USE_TLS=False
DJANGO_EMAIL_USE_SSL=False
REDIS_URL='redis://localhost:6379/1'
CELERY_BROKER_URL ='amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND ='amqp://guest:guest@localhost:5672//'
CALLBACK_EMAIL_SENDER='root@localhost'
CALLBACK_MANAGERS_EMAILS=('mitri4@bk.ru', 'dmitriy.shesterkin@gmail.com')

@ -0,0 +1,27 @@
DJANGO_SETTINGS_MODULE=src.dokumentor.settings.stage
SSL=False
DJANGO_SECRET='ewfrevwavrvq3tg4wvf3tvw4ug97hf3t48w7hfy3rf32'
DJANGO_DB='postgres://dokumentor:dokumentor@db:5432/dokumentor'
# Flower settings
FLOWER_PORT=5555
FLOWER_BASIC_AUTH=dokumentor:dokumentor
DJANGO_FROM_EMAIL='Открытые технологии <no-reply@o-tech.io>'
DJANGO_EMAIL_HOST='smtp.yandex.ru'
DJANGO_EMAIL_PORT=465
DJANGO_EMAIL_USER='no-reply@o-tech.io'
DJANGO_EMAIL_PASSWORD='BA4BnshqVz3Hae'
DJANGO_EMAIL_USE_TLS=False
DJANGO_EMAIL_USE_SSL=True
REDIS_URL='redis://redis:6379/1'
CELERY_BROKER_URL = 'amqp://dokumentor:dokumentor@rabbitmq:5672//'
CELERY_RESULT_BACKEND = 'amqp://dokumentor:dokumentor@rabbitmq:5672//'
CALLBACK_EMAIL_SENDER='Документор <no-reply@o-tech.io>'
CALLBACK_MANAGERS_EMAILS=('mitri4@bk.ru', 'alexander.time@gmail.com','dmitriy.shesterkin@gmail.com')

@ -0,0 +1,24 @@
DJANGO_SETTINGS_MODULE=src.dokumentor.settings.{{env}}
DJANGO_SECRET='CHANGE_ME_IN_PRODUCTION'
# Flower settings
FLOWER_PORT=5555
FLOWER_BASIC_AUTH=user:password
DJANGO_DB='postgres://USER:PASSWORD@HOST:PORT/NAME'
DJANGO_FROM_EMAIL='root@localhost'
DJANGO_EMAIL_HOST=''
DJANGO_EMAIL_PORT=''
DJANGO_EMAIL_USER=''
DJANGO_EMAIL_PASSWORD=''
DJANGO_EMAIL_USE_TLS=False
DJANGO_EMAIL_USE_SSL=False
CELERY_BROKER_URL='amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND='amqp://guest:guest@localhost:5672//'
CALLBACK_EMAIL_SENDER=''
CALLBACK_MANAGERS_EMAILS=()

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
import os
import envvars as e
conf_dir = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
e.load(os.path.join(conf_dir, 'conf/env'))
port = e.get('FLOWER_PORT')
broker = e.get('CELERY_BROKER_URL')
basic_auth = [e.get('FLOWER_BASIC_AUTH')]

@ -0,0 +1,44 @@
[loggers]
keys=root,gunicorn.access,gunicorn.error
[logger_root]
level=INFO
handlers=root
[logger_gunicorn.access]
level=INFO
handlers=gunicorn.access
qualname=gunicorn.access
propagate=0
[logger_gunicorn.error]
level=INFO
handlers=gunicorn.error
qualname=gunicorn.error
propagate=0
[handlers]
keys=root,gunicorn.access,gunicorn.error
[handler_root]
class=logging.StreamHandler
formatter=default
args=(sys.stdout,)
[handler_gunicorn.access]
class=logging.StreamHandler
formatter=default
args=(sys.stdout,)
[handler_gunicorn.error]
class=logging.StreamHandler
formatter=default
args=(sys.stdout,)
[formatters]
keys=default
[formatter_default]
class=logging.Formatter
format=* %(asctime)s [%(levelname)s] {%(filename)s} - %(message)s
datefmt=%x %X

@ -0,0 +1,67 @@
# Settings http://docs.gunicorn.org/en/stable/settings.html
import os
bind = 'unix:/tmp/gunicorn.sock'
backlog = 2048 # The number of pending connections
preload = True # Load application code before the worker processes are forked
workers = 2
worker_class = 'sync'
worker_connections = 1000
threads = 1
timeout = 120
keepalive = 2
reload = False
spew = False
check_config = False
daemon = False
pidfile = None
umask = 0
user = None
group = None
tmp_upload_dir = None
proc_name = None
# Logging
# -------
logconfig = '/opt/app/conf/gunicorn_logging.ini'
def post_fork(server, worker):
server.log.info("Worker spawned (pid: %s)", worker.pid)
def pre_fork(server, worker):
pass
def pre_exec(server):
server.log.info("Forked child, re-executing.")
def when_ready(server):
server.log.info("Server is ready. Spawning workers")
def worker_int(worker):
worker.log.info("Worker received INT or QUIT signal")
## get traceback info
import threading, sys, traceback
id2name = dict([(th.ident, th.name) for th in threading.enumerate()])
code = []
for threadId, stack in sys._current_frames().items():
code.append("\n# Thread: %s(%d)" % (id2name.get(threadId,""),
threadId))
for filename, lineno, name, line in traceback.extract_stack(stack):
code.append('File: "%s", line %d, in %s' % (filename,
lineno, name))
if line:
code.append(" %s" % (line.strip()))
worker.log.debug("\n".join(code))
def worker_abort(worker):
worker.log.info("Worker received SIGABRT signal")

@ -0,0 +1,66 @@
worker_processes 1;
user nginx;
pid /var/run/nginx.pid;
error_log /var/log/nginx/error.log;
events {
worker_connections 1024;
accept_mutex off;
use epoll;
}
http {
sendfile on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
upstream django {
server unix:/tmp/gunicorn.sock fail_timeout=0;
}
server {
listen 80;
server_name _;
charset utf-8;
keepalive_timeout 5;
client_max_body_size 64M;
access_log /var/log/nginx/access.log;
location /media {
alias /opt/app/public/media;
expires 30d;
}
location /static {
alias /opt/app/public/static;
expires 30d;
}
location /favicon.ico {
alias /opt/app/public/static/favicon.ico;
expires 30d;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# we don't want nginx trying to do something clever with
# redirects, we set the Host: header above already.
proxy_redirect off;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
proxy_http_version 1.1;
proxy_pass http://django;
proxy_pass_header Server;
}
}
}

@ -0,0 +1,29 @@
upstream dokumentor-dev {
server localhost:32772;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
client_max_body_size 175M;
listen 0.0.0.0:80;
server_name www.develop.dokumentor.lets-dev.ru develop.dokumentor.lets-dev.ru;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_pass http://dokumentor-dev/;
proxy_redirect off;
}
}

@ -0,0 +1,41 @@
upstream dokumentor-master {
server localhost:32770;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
server_name www.dokumentor.ru dokumentor.ru;
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name www.dokumentor.ru dokumentor.ru;
charset utf-8;
keepalive_timeout 5;
client_max_body_size 175M;
ssl_certificate /opt/app/Dokumentor/conf/ssl-keys/dokumentor.ru.crt;
ssl_certificate_key /opt/app/Dokumentor/conf/ssl-keys/dokumentor.ru.key;
add_header Strict-Transport-Security 'max-age=604800';
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_pass http://dokumentor-master/;
proxy_redirect off;
}
}

@ -0,0 +1,29 @@
upstream dokumentor-master {
server localhost:32769;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
client_max_body_size 175M;
listen 0.0.0.0:80;
server_name www.stage.dokumentor.mitri4.pro stage.dokumentor.mitri4.pro;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_pass http://dokumentor-master/;
proxy_redirect off;
}
}

@ -0,0 +1,95 @@
-----BEGIN CERTIFICATE-----
MIIIdzCCB1+gAwIBAgIMAUMjCcTnjsjPnHoFMA0GCSqGSIb3DQEBCwUAMGAxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTYwNAYDVQQDEy1H
bG9iYWxTaWduIERvbWFpbiBWYWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwHhcN
MTYxMjAzMjAzNTA4WhcNMTcxMjA0MjAzNTA4WjA/MSEwHwYDVQQLExhEb21haW4g
Q29udHJvbCBWYWxpZGF0ZWQxGjAYBgNVBAMTEXd3dy5kb2t1bWVudG9yLnJ1MIIC
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmUTMEhDNDQtPOqP32MpPRutH
I2EZ82nSCS24/sPfgOh7hCC348dWpzWlBGPLHuaKpnqJCc4v8MrAR8N22dXbpBhx
YZe3kV2NVCM4PRBEifWHGIqH32kT/Ie+f7qbkLR3XAujSDK6pBfe1biaYtt5NQmd
vmPe8Osk60p8Cw3ZtValR1qSwtdtQl7aJUxCK9eUI4TSKB6yLnQa7JAlvbIKJ7xv
sYvj9I9azztG80IJMxAOZ3n3aYNOGZghz836upGDXH94V6iZM/+RoywnEQg3DMMQ
hdzfINmvVMbzZweeRPkPwBmEhjWllfsJn+YbgtXsYfP5MSFRExoyAUlZjqHR7Au8
gpQP222pTvjRu0eQDAISV+8i4gNs0O+dcHoKSJhYVp36l2eoxIqYw3+QO3mOnI96
3/lfo/B4an7zWPAuHDr/J6ZzlWJhgZfB4W3rtsw7A7ftw+9eawq/E+ZKMiBNjkt0
M3iLU2pABnd+p2p7MrfIENf3r6uH1E+2bYwxYYFlC16DSaZO82jXUMDHQ0qENh/E
AEnQECzlBX/ZILsJcn8RG03yJShuDjwN45RU/VjaA1VJT2nwX+BzYqYEU5c3NoNi
/Woq3drWR109dR6A6wycASZKQo35crYekILCZzeXZDTBC8V1w1G4LKE3oc4DAO5j
XVehBkd94nrojp9ESvkCAwEAAaOCBFAwggRMMA4GA1UdDwEB/wQEAwIFoDCBlAYI
KwYBBQUHAQEEgYcwgYQwRwYIKwYBBQUHMAKGO2h0dHA6Ly9zZWN1cmUuZ2xvYmFs
c2lnbi5jb20vY2FjZXJ0L2dzZG9tYWludmFsc2hhMmcycjEuY3J0MDkGCCsGAQUF
BzABhi1odHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vZ3Nkb21haW52YWxzaGEy
ZzIwVgYDVR0gBE8wTTBBBgkrBgEEAaAyAQowNDAyBggrBgEFBQcCARYmaHR0cHM6
Ly93d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCAYGZ4EMAQIBMAkGA1Ud
EwQCMAAwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5nbG9iYWxzaWduLmNv
bS9ncy9nc2RvbWFpbnZhbHNoYTJnMi5jcmwwKwYDVR0RBCQwIoIRd3d3LmRva3Vt
ZW50b3IucnWCDWRva3VtZW50b3IucnUwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG
AQUFBwMCMB0GA1UdDgQWBBS+30AnMCosxBj+UHlVLNY4ldsbczAfBgNVHSMEGDAW
gBTqTnzUgC3lFYGGJoyCbcCYpM+XDzCCAm0GCisGAQQB1nkCBAIEggJdBIICWQJX
AHUAVhQGmi/XwuzT9eG9RLI+x0Z2ubyZEVzA75SYVdaJ0N0AAAFYxmXMMQAABAMA
RjBEAiBTT+yOJN9obE7IZ3hfndpUNrdTNEaMaxl3Ha0pvtVABwIgAnB1uloNsPDp
EO+RaMKmoGKbFaRf1MHoq1EYhT+ei1cAdQDd6x0reg1PpiCLga2BaHB+Lo6dAdVc
iI09EcTNtuy+zAAAAVjGZc3CAAAEAwBGMEQCIGLkfFq2UZjR0F/LmLqb4gcFmzzs
KeIxhw13giZGF1ILAiAawAXRzh/E/rE68vkVBOMy+URFOfws+Oufw9BbmPOecwB3
ALvZ37wfinG1k5Qjl6qSe0c4V5UKq1LoGpCWZDaOHtGFAAABWMZlzXUAAAQDAEgw
RgIhANC0ycLeTK/XJM00So4erI219VjERMSMkeUoLijQu8vnAiEAjzPK2weX62jg
tepoU2LFGcvBt0lDm5tqu9TUn43v7xsAdgCkuQmQtBhYFIe7E6LMZ3AKPDWYBPkb
37jjd80OyA3cEAAAAVjGZczyAAAEAwBHMEUCIQDOKT2ZJhnIFRkD+rAIRVeiIXD5
yUtUA85yqXz+ubzA0gIgGUgFxZqsMTINL8qCc0oDpkYyjcIjcPuXrQl3LRFZdHMA
dgDuS723dc5guuFCaR+r4Z5mow9+X7By2IMAxHuJeqj9ywAAAVjGZc+dAAAEAwBH
MEUCIQDrmSFD+2DBhJ/9zLOC/pjSmBW7MTvxfSPI5oyu7gMVgwIgRgwREOWJDJAW
sVS+xilhj4JfBzLwWDVp1Xfz7eOIzb8wDQYJKoZIhvcNAQELBQADggEBAAmzYqXa
u1X6/oik4e/okv1yDDNRyXcNUQYOltBt7O+q+RW9H1c6EOsP0zIKrU9knDtwajMp
K5wm9+ciCCd/fubNorP2Clr3dgMcj2pzwSLPR6vRk9lOxirlEu3jj9ZFaN+Nrmf/
zMfej0KJxk+pAM8FsthMJ8AbHSSfO/kCxDBNFMlxoZz/ffheMv439Xh812KafJkw
7st4TCKJlydXFmh/rGk666hUwbC4ZsaGtThi3H4YmQNcDf36cXUErlHPny2rLAIu
C723SizzNQ5ePkT1X67ige5nsFSG0UG6+OVliVr8jvCUGGhCeIyakM2TWPPBEN8R
uL3m1LTKdX7yBy8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
MDBaFw0yNDAyMjAxMDAwMDBaMGAxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMTYwNAYDVQQDEy1HbG9iYWxTaWduIERvbWFpbiBWYWxpZGF0
aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQCp3cwOs+IyOd1JIqgTaZOHiOEM7nF9vZCHll1Z8syz0lhXV/lG72wm2DZC
jn4wsy+aPlN7H262okxFHzzTFZMcie089Ffeyr3sBppqKqAZUn9R0XQ5CJ+r69eG
ExWXrjbDVGYOWvKgc4Ux47JkFGr/paKOJLu9hVIVonnu8LXuPbj0fYC82ZA1ZbgX
qa2zmJ+gfn1u+z+tfMIbWTaW2jcyS0tdNQJjjtunz2LuzC7Ujcm9PGqRcqIip3It
INH6yjfaGJjmFiRxJUvE5XuJUgkC/VkrBG7KB4HUs9ra2+PMgKhWBwZ8lgg3nds4
tmI0kWIHdAE42HIw4uuQcSZiwFfzAgMBAAGjggElMIIBITAOBgNVHQ8BAf8EBAMC
AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU6k581IAt5RWBhiaMgm3A
mKTPlw8wRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
d3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCowKKAmoCSG
Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYBBQUHAQEE
MTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9yb290
cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZIhvcNAQEL
BQADggEBANdFnqDc4ONhWgt9d4QXLWVagpqNoycqhffJ7+mG/dRHzQFSlsVDvTex
4bjyqdKKEYRxkRWJ3AKdC8tsM4U0KJ4gsrGX3G0LEME8zV/qXdeYMcU0mVwAYVXE
GwJbxeOJyLS4bx448lYm6UHvPc2smU9ZSlctS32ux4j71pg79eXw6ImJuYsDy1oj
H6T9uOr7Lp2uanMJvPzVoLVEgqtEkS5QLlfBQ9iRBIvpES5ftD953x77PzAAi1Pj
tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----

@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEAmUTMEhDNDQtPOqP32MpPRutHI2EZ82nSCS24/sPfgOh7hCC3
48dWpzWlBGPLHuaKpnqJCc4v8MrAR8N22dXbpBhxYZe3kV2NVCM4PRBEifWHGIqH
32kT/Ie+f7qbkLR3XAujSDK6pBfe1biaYtt5NQmdvmPe8Osk60p8Cw3ZtValR1qS
wtdtQl7aJUxCK9eUI4TSKB6yLnQa7JAlvbIKJ7xvsYvj9I9azztG80IJMxAOZ3n3
aYNOGZghz836upGDXH94V6iZM/+RoywnEQg3DMMQhdzfINmvVMbzZweeRPkPwBmE
hjWllfsJn+YbgtXsYfP5MSFRExoyAUlZjqHR7Au8gpQP222pTvjRu0eQDAISV+8i
4gNs0O+dcHoKSJhYVp36l2eoxIqYw3+QO3mOnI963/lfo/B4an7zWPAuHDr/J6Zz
lWJhgZfB4W3rtsw7A7ftw+9eawq/E+ZKMiBNjkt0M3iLU2pABnd+p2p7MrfIENf3
r6uH1E+2bYwxYYFlC16DSaZO82jXUMDHQ0qENh/EAEnQECzlBX/ZILsJcn8RG03y
JShuDjwN45RU/VjaA1VJT2nwX+BzYqYEU5c3NoNi/Woq3drWR109dR6A6wycASZK
Qo35crYekILCZzeXZDTBC8V1w1G4LKE3oc4DAO5jXVehBkd94nrojp9ESvkCAwEA
AQKCAgBfe5iWeJkF01HcemHhUMfqqpB63fdIyVfsF+vz6xrGOA8a1Tc6U+kL6kOP
ZIwaCA3AgP32edkr7WO0UXUtaCmZJREdd2MI0HtHO1nB0Oyh9a/f/g1/hPrKi9aF
xD89+u+RDD8Ar3nO2IAeLQ8hHxF3lTIMdjNha1xoqNJ2IH7MldoJhceAUqzieCz2
p3dh0L+dERXLoLPodLSBQ5v/fXcOIjqDJV8x8EzmZUtiKHWKtioDFNypgv+Yukn2
J6BXsmdfrJnQIlyvJDwap1r/JVsGPE+C1YK7+GFeM0NXoEtdNLw3NK523dz2fpoU
X0osTBEjRNatYNAdUmhsnMGKNg2MRUPuC1jdquIufCU9u70mkQf5gkHnY2URVTQ8
MR6drsHNtN+Hz45ikA/QuIv5J3jlkEZFuMbYHi5bvaU44TQhmEqeGHyQgYuXaEk/
ZRv8vs7f/dU7flnzRI+M/qAsMP4TUWmNhWyPRNLPaH8kgBqF94QblgVrF4sbXpp0
aTy8DQySHVWmwJAvQdwa9eSj8dLIbKOv8HrGZp3Jekafe8lNfXZqfY9pPqBwYa3s
Dw3C1yVotsrKA8mmYCcNMOY6C3rSA5BZ+/UPob528AV20zCqcnQTQJjZ423THI9Z
d38ph+NqQSNJqo0G807QtyPsd6oY1kXxKkDwLGCZOtqBcWqiAQKCAQEAx2DX/fdn
WZD4sSBa1B/tzrmXvWqqdLk9TDvzFVGD3H3HNqRKKk8C4jYV+ladmkVQuz9P3zIk
21WeiQRZxu8BaN4ZIqFrm6VFwnDN6jxKQ/gLi4S6eumuwDYHT8PRMd3klBeuNXE1
SPkG33D/PnMFtToMmUXf248QRFgAshFqM7xwib80rUfquy4jrdkRRPcFrYRx1DdG
5+bDUiFDjcyswdt/uvRkUnjBsqNgRpzYtn74yJnLUpxk9FF4iMIkWk6poiDYnjsy
tnHeepLnW72l4q7oFhNAMid0ws3Js72uy89QSP+gR+Qu1u3clwvSYnIKCYSkPgjA
iHh15SrIvj4D8QKCAQEAxMu07JS/ZdWdCyZER22Ybku3xzR7cW3lyeuTey0zgdhT
N80a9VRtEeK15Sel7TfooIRcKnOd5oUtP8pjUZhf/bfguRNxPlHvaapqh7O56gdv
YNJRY6r5pe/yMHa15d6RhDdVFph4dmN9ILpVCKYln5kOymNzyOkFmE/IwAibklN1
7N6+B1r0mdNun2khTWqDcT6Ms+FtY8QlSPr+i0+GXhp+4cIX7b/VNskOhWmT/MU7
+4vFT2kvWufRor4KTuk310lVDNnze5XKIh5CQ248ZBkNzD7EyJKSXSQlJReGSlfH
C3Ky2+fmFy7pZY/I7USqWFMgbofHdLoYqvyF+TofiQKCAQASEJJBbpMsqFgAJIBW
S/ZODr7S6ME9BjOpnpztx479AWB1cPlPUA1g1am0Hvj0q2cfMCNag76XKPDOVViV
D76+87CvVJTda2IgtfvSR1grRGQ3ZfVHgbjVrY+ICKQBsqstR9/+85zyWa3nvOND
k0RnITVXBd+8kv/UUWzutWk7+szvjiWFtchs4UdWTx6jcwZOrHtr0P5ZsKzt2hm2
1V6pyeuO0unsFwjl2Ku2eiugjWyZMGYdvBHhmSgkrAKDNDFmgTdfTtnPcg3IaVsR
EuPe4B4jMedVJAIOTHsEECGwUb5iftbU7LXZv3+HKAkN5mtGZYBEJqLbOp7j/rZl
llThAoIBAAqmp80iI9XEIPLIiGuBP/3ANVsfuQqjkwtBp8LD6IS/i4l6nVnnzttn
9MZJRg63tuxxHXfiuAoQ7SkFsChrYc6elBgQOFHSJ24FnixoCsjizCFmYKdPSqGz
gd0jn6aoTCHmyMEnUWW+7rfFvfJw45pms0k65rpZ+kaLEudpz9m0kK5YQ9qsDo8A
xXz1OKsy95g6dW0K51u98vKnOv2ZOUGAl5tqYNcqScTkTtfjpfHJTvzHTM+Gdtyp
rUvskyxALRiGzIaciTQIIF+GWbnCjpwwSvHh986POEK4QRZn1onRhGFXPNzwCSD6
FgG8LXjB/aI4JYo16RKlO86NSkb54VkCggEBAJr5g5lpBbcXVQjPjcTgN8WvHl5O
iuOKbAItYDYwtMYfeSU8ycEEqgsvg8yO3pG9WfHCNQOB1qjybTLeezHMec/hMlOQ
HIWfi1qk3YKBAa+keetddssC/ibHHHIr/z2ivhoFQeDilBttPCSOyldHTKZgI7a1
H1M8bubiriZy5sZ5FcD9mYXsjz/vHDp36b9SSbVUwiBwOqTKw4TClGkvGAwwehbY
1Q7A9MPycKcCsAqeWeXe+SecFBSEMh6YARR55eoBiTZdRMosjPW3z5lU/rQUyThM
uShrmZKfgC4hSp18DQFS+2OBqLEJXQh0JB9HkIajpqC5ZFyOIaImzTUzOmI=
-----END RSA PRIVATE KEY-----

@ -0,0 +1,56 @@
[supervisord]
logfile=/var/log/supervisord.log
loglevel=debug
directory=/opt/app
pidfile=/tmp/supervisord.pid
nodaemon=true
minfds=65535
minprocs=200
environment=PATH="/opt/app"
user=root
[program:nginx]
command=/usr/sbin/nginx "-g" "daemon off;"
priority=1
autorestart=true
stdout_events_enabled=true
stderr_events_enabled=true
[program:gunicorn]
command=gunicorn src.dokumentor.wsgi:application -c /opt/app/conf/gunicorn_prod.py
directory=/opt/app
priority=2
stdout_logfile=/var/log/gunicorn.log
redirect_stderr=true
stdout_events_enabled=true
stderr_events_enabled=true
autorestart=true
[program:celeryd]
command=celery -A src.dokumentor worker -l info -E -B
directory=/opt/app
stdout_logfile=/var/log/celery-worker.log
stderr_logfile=/var/log/celery-worker-error.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
[program:flower]
command=celery -A src.dokumentor flower -l info -E -B --conf=/opt/app/conf/flower_conf.py
directory=/opt/app
stdout_logfile=/var/log/celery-flower.log
stderr_logfile=/var/log/celery-flower-error.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
redirect_stderr=true
; RQ requires the TERM signal to perform a warm shutdown. If RQ does not die
; within 10 seconds, supervisor will forcefully kill it
stopsignal=TERM

@ -1,19 +0,0 @@
#!/bin/bash
# diff production and development static folders
ALL=$1
PROD_STATIC="_public_html/static"
DEV_STATIC="project/static"
if [ "$ALL" = "--all" ]; then
EXCLUDE=""
else
EXCLUDE="-x cms -x admin -x admin_tools -x debug_toolbar -x tiny_mce -x filer -x autocomplete_light -x ckeditor
-x ckeditor_plugins -x cmsplugin_filer_folder -x djangocms_admin_style -x djangocms_text_ckeditor
-x cms.ckeditor.css -x cms.ckeditor.js"
echo "# exclude =" ${EXCLUDE}
fi
diff -q -r ${EXCLUDE} ${PROD_STATIC} ${DEV_STATIC}

@ -0,0 +1,66 @@
version: '2'
services:
web:
restart: always
container_name: dokumentor-web-develop
build: .
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./:/opt/app
ports:
- "32772:80"
- "33768:5555"
env_file: conf/env
depends_on:
- db
- redis
- rabbitmq
db:
restart: always
container_name: dokumentor-db-develop
image: kiasaki/alpine-postgres:9.5
expose:
- "5432"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./data/postgresql:/var/lib/postgresql/data
environment:
- POSTGRES_USER=dokumentor
- POSTGRES_PASSWORD=dokumentor
redis:
restart: always
container_name: dokumentor-redis-develop
image: redis:alpine
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
expose:
- "6379"
rabbitmq:
restart: always
container_name: dokumentor-rabbitmq-develop
image: rabbitmq:alpine
environment:
- RABBITMQ_DEFAULT_USER=dokumentor
- RABBITMQ_DEFAULT_PASS=dokumentor
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
expose:
- "5672"
- "5671"
bower:
container_name: dokumentor-bower-develop
build:
context: .
dockerfile: ./conf/compose/Dockerfile
command: /bin/sh -c "cd /opt/app && bower i"
volumes:
- ./:/opt/app

@ -0,0 +1,56 @@
version: '2'
services:
web:
restart: always
container_name: dokumentor-web
build: .
volumes:
- ./:/opt/app
ports:
- "32768:80"
- "33768:5555"
env_file: conf/env
depends_on:
- db
- redis
- rabbitmq
db:
restart: always
container_name: dokumentor-db
image: kiasaki/alpine-postgres:9.5
expose:
- "5432"
volumes:
- ./data/postgresql:/var/lib/postgresql/data
environment:
- POSTGRES_USER=dokumentor
- POSTGRES_PASSWORD=dokumentor
redis:
restart: always
container_name: dokumentor-redis
image: redis:alpine
expose:
- "6379"
rabbitmq:
restart: always
container_name: dokumentor-rabbitmq
image: rabbitmq:alpine
environment:
- RABBITMQ_DEFAULT_USER=dokumentor
- RABBITMQ_DEFAULT_PASS=dokumentor
expose:
- "5672"
- "5671"
bower:
container_name: dokumentor-bower
build:
context: .
dockerfile: ./conf/compose/Dockerfile
command: /bin/sh -c "cd /opt/app && bower i"
volumes:
- ./:/opt/app

@ -0,0 +1,66 @@
version: '2'
services:
web:
restart: always
container_name: dokumentor-web-stage
build: .
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./:/opt/app
ports:
- "32769:80"
- "33769:5555"
env_file: conf/env
depends_on:
- db
- redis
- rabbitmq
db:
restart: always
container_name: dokumentor-db-stage
image: kiasaki/alpine-postgres:9.5
expose:
- "5432"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./data/postgresql:/var/lib/postgresql/data
environment:
- POSTGRES_USER=dokumentor
- POSTGRES_PASSWORD=dokumentor
redis:
restart: always
container_name: dokumentor-redis-stage
image: redis:alpine
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
expose:
- "6379"
rabbitmq:
restart: always
container_name: dokumentor-rabbitmq-stage
image: rabbitmq:alpine
environment:
- RABBITMQ_DEFAULT_USER=dokumentor
- RABBITMQ_DEFAULT_PASS=dokumentor
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
expose:
- "5672"
- "5671"
bower:
container_name: dokumentor-bower-stage
build:
context: .
dockerfile: ./conf/compose/Dockerfile
command: /bin/sh -c "cd /opt/app && bower i"
volumes:
- ./:/opt/app

@ -0,0 +1,68 @@
version: '2'
services:
web:
restart: always
container_name: dokumentor-web-prod
build:
context: .
dockerfile: Dockerfile-prod
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./:/opt/app
ports:
- "32770:80"
- "33770:5555"
env_file: conf/env
depends_on:
- db
- redis
- rabbitmq
db:
restart: always
container_name: dokumentor-db-prod
image: kiasaki/alpine-postgres:9.5
expose:
- "5432"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./data/postgresql:/var/lib/postgresql/data
environment:
- POSTGRES_USER=dokumentor
- POSTGRES_PASSWORD=dokumentor
redis:
restart: always
container_name: dokumentor-redis-prod
image: redis:alpine
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
expose:
- "6379"
rabbitmq:
restart: always
container_name: dokumentor-rabbitmq-prod
image: rabbitmq:alpine
environment:
- RABBITMQ_DEFAULT_USER=dokumentor
- RABBITMQ_DEFAULT_PASS=dokumentor
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
expose:
- "5672"
- "5671"
bower:
container_name: dokumentor-bower-prod
build:
context: .
dockerfile: ./conf/compose/Dockerfile
command: /bin/sh -c "cd /opt/app && bower i"
volumes:
- ./:/opt/app

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

83
fabfile.py vendored

@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-
# flake8: noqa
from fabric.api import *
from conf.deploy.common import BRANCH_DEVELOP, BRANCH_PROD, PROJECT_NAME, PROJECT_NAME_DEVELOP
from conf.deploy.prod import HOSTS, USER, PASS
from conf.deploy.develop import HOSTS as HOSTS_DEVELOP, USER as USER_DEVELOP, PASS as PASS_DEVELOP
@task
def develop():
env.status = 'develop'
env.user = USER_DEVELOP
env.password = PASS_DEVELOP
env.hosts = HOSTS_DEVELOP
env.PROJECT_DIR = f'projects/{PROJECT_NAME_DEVELOP}'
env.BRANCH = BRANCH_DEVELOP
@task
def stage():
env.status = 'stage'
env.user = USER_DEVELOP
env.password = PASS_DEVELOP
env.hosts = HOSTS_DEVELOP
env.PROJECT_DIR = f'projects/{PROJECT_NAME_DEVELOP}-stage'
env.BRANCH = BRANCH_PROD
@task
def prod():
env.status = 'prod'
env.user = USER
env.password = PASS
env.hosts = HOSTS
env.PROJECT_DIR = f'/opt/app/{PROJECT_NAME}'
env.BRANCH = BRANCH_PROD
@task
def pull():
with cd(env.PROJECT_DIR):
run(f'git pull origin {env.BRANCH}')
@task
def docker_rebuild():
with cd(env.PROJECT_DIR):
if env.status == 'prod':
run('docker-compose build')
run('docker-compose down')
run('docker-compose up -d')
elif env.status == 'stage':
run('docker-compose -f docker-compose.stage.yml build')
run('docker-compose -f docker-compose.stage.yml down')
run('docker-compose -f docker-compose.stage.yml up -d')
else:
run('docker-compose -f docker-compose.develop.yml build')
run('docker-compose -f docker-compose.develop.yml down')
run('docker-compose -f docker-compose.develop.yml up -d')
@task
def docker_restart():
with cd(env.PROJECT_DIR):
if env.status == 'prod':
run('docker-compose restart web')
elif env.status == 'stage':
run('docker-compose -f docker-compose.stage.yml restart web')
else:
run('docker-compose -f docker-compose.develop.yml restart web')
@task
def upgrade():
pull()
docker_rebuild()
@task
def update():
pull()
docker_restart()

1
log/.gitignore vendored

@ -1 +0,0 @@
*

@ -1,9 +1,13 @@
#!/usr/bin/env python
import os
#!/usr/bin/env python -W ignore
from os import path as p
import sys
import envvars as env
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
env_file = p.normpath(p.join(p.abspath(p.dirname(__file__)), "./conf/env"))
env.load(env_file)
from django.core.management import execute_from_command_line

@ -1,4 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from .celery import app as celery_app

@ -1,44 +0,0 @@
# -*- coding: utf-8 -*-
import os.path
from django.conf import settings
from django.db import models
from django.db.models import Q
class ReqAvail(models.Model):
"""Заказ товара."""
NEW_STATUS = 0
DONE_STATUS = 1
STATUS_CHOICES = (
(NEW_STATUS, u'Новый'),
(DONE_STATUS, u'Обработан'),
)
name = models.CharField(u'Имя клиента', max_length=100)
phone = models.CharField(u'Телефон или e-mail', max_length=50)
message = models.TextField(u'Текст сообщения')
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='messages', null=True, blank=True)
# email = models.EmailField(u'E-mail', default='', blank=True)
# region = models.ForeignKey(Region, verbose_name=u"Регион", blank=False, null=False, default='')
#good = models.ForeignKey(CatalogItem, verbose_name=u'Товар', null=True, blank=True)
status = models.PositiveSmallIntegerField(u'Статус', choices=STATUS_CHOICES, default=NEW_STATUS)
status_changed = models.DateTimeField(u'Статус изменен', null=True, blank=True, editable=False)
created_at = models.DateTimeField(u'Дата заказа', auto_now_add=True)
updated_at = models.DateTimeField(u'Изменен', auto_now=True)
class Meta:
verbose_name = u'Обратная связь'
verbose_name_plural = u'Обратная связь'
ordering = ['-created_at',]
def __unicode__(self):
return u'Сообщение %s от %s' % (
#self.good if self.good_id else u'(Ничего)',
self.name[:20],
self.created_at.strftime("%d.%m.%Y %H:%M"),
)

@ -1,24 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
app = Celery('proj')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
#@app.task(bind=True)
#def debug_task(self):
# print('Request: {0!r}'.format(self.request))

@ -1,3 +0,0 @@
from django.db import models
# Create your models here.

@ -1,30 +0,0 @@
# -*- coding: utf-8 -*-
import cStringIO as StringIO
import ho.pisa as pisa
from django.template.loader import render_to_string
from django.template import RequestContext
from django.http import HttpResponse
def pdf_to_response(content, filename=None, filename_encode='windows-1251'):
"""Выводит content в django.http.HttpResponse, который и возвращает."""
response = HttpResponse(content, mimetype='application/pdf')
if filename:
if filename_encode:
filename = filename.encode(filename_encode)
response['Content-Disposition'] = ('attachment; filename="%s"' % filename.replace('"', "''"))
return response
def render_pdf_to_string(request, template_name, dictionary=None):
"""Рендерит html шаблон в pdf. Возвращает строку, в которой содержится сгенерированный pdf."""
context_instance = RequestContext(request)
html = render_to_string(template_name, dictionary, context_instance)
#return HttpResponse(html) # для отладки
result = StringIO.StringIO()
pisa.pisaDocument(StringIO.StringIO(html.encode('utf-8')), result, encoding='utf-8')
pdf_content = result.getvalue()
result.close()
return pdf_content

@ -1,19 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
# convert datetime to json
dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime.datetime) or isinstance(obj, datetime.date) else None
def safe_int(value, default=None):
"""Возвращает value, приведенное к типу int, или default, если привести не получается."""
try:
return int(value)
except:
return default
def only_numerics(value):
"""Убирает из переданной строки все не цифровые символы."""
return u''.join(c for c in value if c.isdigit())

@ -1 +0,0 @@
# Create your views here.

@ -1,3 +0,0 @@
from useful_tools import *
from get_xlwt_style_list import *
from xls_to_response import *

@ -1,12 +0,0 @@
# -*- coding: utf-8 -*-
from django.http import HttpResponse
def xls_to_response(content, filename=None, filename_encode='windows-1251'):
"""Выводит content в django.http.HttpResponse, который и возвращает."""
response = HttpResponse(content, mimetype='application/ms-excel')
if filename:
if filename_encode:
filename = filename.encode(filename_encode)
response['Content-Disposition'] = ('attachment; filename="%s"' % filename.replace('"', "''"))
return response

@ -1,2 +0,0 @@
# -*- coding: utf-8 -*-
from .models import get_profile

@ -1,67 +0,0 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
import forms
import models
class UserProfileAdmin(admin.ModelAdmin):
list_display = ('get_email', 'profile_type', 'name', 'inn', 'active')
list_display_links = list_display
form = forms.UserProfileAdminForm
class LicenseAdmin(admin.ModelAdmin):
list_display = ('get_company', 'term', 'status', 'order_date', 'date_from', 'date_to')
list_display_links = list_display
search_fields = ('company__email', )
list_filter = ('status', 'term', 'order_date', 'date_from', 'date_to')
#TODO прописать fieldsets
# fieldsets = [
# (None, {'fields': ['user',]}),
# (None, {'fields': ['profile_type',]}),
# (None, {'fields': ['name', 'phone_code', 'phone', 'address', 'inn',]}),
# (None, {'fields': ['add_glavbuh_sign', 'glavbuh_fio',]}),
# (None, {'fields': ['v_litce', 'na_osnovanii',]}),
# (u'ИП', {'fields': ['ip_surname', 'ip_name', 'ip_midname', 'ip_kod_okpo',]}),
# (u'Организация', {'fields': ['org_boss_name', 'org_kpp',]}),
# (u'Печать и подписи', {'fields': ['boss_sign', 'glavbuh_sign', 'stamp',]}),
# ]
class BankAccountAdmin(admin.ModelAdmin):
class Media:
css = {'all': ('css/custom_admin.css',)}
list_display = ('company', 'is_main', 'name', 'account', 'created_at',)
list_display_links = list_display
form = forms.BankAccountAdminForm
class ClientAdmin(admin.ModelAdmin):
class Media:
css = {'all': ('css/custom_admin.css',)}
list_display = ('company', 'name', 'inn',)
list_display_links = list_display
form = forms.ClientAdminForm
fieldsets = [
(None, {'fields': ['company',]}),
(None, {'fields': ['name', 'inn', 'address', 'ogrn',]}),
(u'ИП', {'fields': ['okpo',]}),
(u'Организация', {'fields': ['kpp',]}),
(u'Банковские реквизиты',
{'fields': ['bank_bik', 'bank_name', 'bank_korr_account', 'bank_account',]}),
(u'Контакты',
{'fields': ['contact_name', 'contact_email', 'contact_phone', 'contact_skype',
'contact_other',]}),
]
admin.site.register(models.UserProfile, UserProfileAdmin)
admin.site.register(models.BankAccount, BankAccountAdmin)
admin.site.register(models.Client, ClientAdmin)
admin.site.register(models.License, LicenseAdmin)
admin.site.register(models.LicensePrice)

@ -1,32 +0,0 @@
# -*- coding: utf-8 -*-
IP_PROFILE = 1
ORG_PROFILE = 2
PROFILE_TYPES = (
(IP_PROFILE, u'Индивидуальный предприниматель'),
(ORG_PROFILE, u'Организация'),
)
LICENSE_STATUSES = (
(-1, u'Пробный период'),
(0, u'Не оплачен'),
(1, u'Оплачен'),
(2, u'Активирован'),
(3, u'Срок действия истёк'),
(4, u'Заморожен'),
)
PAYFORMS = (
(-1, u'Бесплатно'),
(0, u'Безналичный расчёт'),
(1, u'Банковская карта'),
# (2, u'Квитанция Сбербанка'),
)
TERMS = (
(1, u'1 месяц'),
(6, u'6 месяцев'),
(12, u'12 месяцев'),
(24, u'24 месяца'),
)

@ -1,41 +0,0 @@
# -*- coding: utf-8 -*-
from datetime import datetime, timedelta
from django.core.cache import cache
from .models import License
def license_check_soon_ends(request):
try:
license_cookie = request.COOKIES.get('close_message_license')
license_15days = cache.get('license_15_%s' % (request.user.username,), None)
days_left = cache.get('days_left_%s' % (request.user.username,), None)
cur_license = cache.get('cur_license_%s' % (request.user.username,), None)
if not days_left or not cur_license:
now = datetime.today()
cur_license = License.objects.filter(company=request.user.profile, date_from__lte=now, date_to__gte=now, status__in=[-1, 1, 2], deleted=False)
if cur_license:
cur_license = cur_license[0]
days_left = (cur_license.date_to - now.date()).days
cache.set('days_left_%s' % (request.user.username,), days_left, 3600)
cache.set('cur_license_%s' % (request.user.username,), cur_license, 3600)
if not license_cookie:
now = datetime.today()
if license_15days is None:
licenses_ends = License.objects.filter(company=request.user.profile, date_to__lte=now + timedelta(15), status__in=[-1, 1, 2], deleted=False)
next_licenses = License.objects.filter(company=request.user.profile, status=1, deleted=False)
if licenses_ends and not next_licenses:
days_to_end = licenses_ends[0].date_to
cache.set('license_15_%s' % (request.user.username,), days_to_end, 3600)
license_15days = days_to_end
else:
license_15days = ''
return {
'license_15days': license_15days,
'license_days': days_left,
'cur_license': cur_license,
}
except Exception as e:
# print e
return { }

@ -1,289 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'UserProfile'
db.create_table(u'customer_userprofile', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('profile_type', self.gf('django.db.models.fields.PositiveSmallIntegerField')()),
('boss_surname', self.gf('django.db.models.fields.CharField')(default='', max_length=30)),
('boss_name', self.gf('django.db.models.fields.CharField')(default='', max_length=30)),
('boss_midname', self.gf('django.db.models.fields.CharField')(default='', max_length=30)),
('inn', self.gf('django.db.models.fields.CharField')(default='', max_length=12)),
('ogrn', self.gf('django.db.models.fields.CharField')(default='', max_length=15)),
('okpo', self.gf('django.db.models.fields.CharField')(default='', max_length=10, blank=True)),
('glavbuh_surname', self.gf('django.db.models.fields.CharField')(default='', max_length=30, blank=True)),
('glavbuh_name', self.gf('django.db.models.fields.CharField')(default='', max_length=30, blank=True)),
('glavbuh_midname', self.gf('django.db.models.fields.CharField')(default='', max_length=30, blank=True)),
('address', self.gf('django.db.models.fields.CharField')(default='', max_length=256)),
('real_address', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('phone_code', self.gf('django.db.models.fields.CharField')(default='', max_length=10, blank=True)),
('phone', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)),
('fax_code', self.gf('django.db.models.fields.CharField')(default='', max_length=10, blank=True)),
('fax', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)),
('email', self.gf('django.db.models.fields.EmailField')(default='', max_length=75, blank=True)),
('site', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('svid_gos_reg', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('ip_reg_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('name', self.gf('django.db.models.fields.CharField')(default='', max_length=256)),
('full_name', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('kpp', self.gf('django.db.models.fields.CharField')(default='', max_length=9)),
('jur_address', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('boss_title', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('na_osnovanii', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('boss_sign', self.gf('django.db.models.fields.files.ImageField')(default='', max_length=100, blank=True)),
('glavbuh_sign', self.gf('django.db.models.fields.files.ImageField')(default='', max_length=100, blank=True)),
('stamp', self.gf('django.db.models.fields.files.ImageField')(default='', max_length=100, blank=True)),
('logo', self.gf('django.db.models.fields.files.ImageField')(default='', max_length=100, blank=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('active', self.gf('django.db.models.fields.BooleanField')(default=False)),
('confirmed', self.gf('django.db.models.fields.BooleanField')(default=False)),
('user_session_key', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
))
db.send_create_signal(u'customer', ['UserProfile'])
# Adding model 'BankAccount'
db.create_table(u'customer_bankaccount', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('company', self.gf('django.db.models.fields.related.ForeignKey')(related_name='bank_accounts', to=orm['customer.UserProfile'])),
('bik', self.gf('django.db.models.fields.CharField')(max_length=10)),
('name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('address', self.gf('django.db.models.fields.CharField')(max_length=256)),
('korr_account', self.gf('django.db.models.fields.CharField')(max_length=20)),
('account', self.gf('django.db.models.fields.CharField')(max_length=20)),
('is_main', self.gf('django.db.models.fields.BooleanField')(default=False)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
))
db.send_create_signal(u'customer', ['BankAccount'])
# Adding model 'Client'
db.create_table(u'customer_client', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('company', self.gf('django.db.models.fields.related.ForeignKey')(related_name='clients', to=orm['customer.UserProfile'])),
('name', self.gf('django.db.models.fields.CharField')(max_length=256, db_index=True)),
('inn', self.gf('django.db.models.fields.CharField')(max_length=12)),
('kpp', self.gf('django.db.models.fields.CharField')(default='', max_length=9, blank=True)),
('okpo', self.gf('django.db.models.fields.CharField')(default='', max_length=10, blank=True)),
('address', self.gf('django.db.models.fields.CharField')(max_length=256)),
('bank_bik', self.gf('django.db.models.fields.CharField')(default='', max_length=10, blank=True)),
('bank_name', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('bank_address', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('bank_korr_account', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)),
('bank_account', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)),
('contact_name', self.gf('django.db.models.fields.CharField')(default='', max_length=50, blank=True)),
('contact_email', self.gf('django.db.models.fields.EmailField')(default='', max_length=50, blank=True)),
('contact_phone', self.gf('django.db.models.fields.CharField')(default='', max_length=50, blank=True)),
('contact_icq', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)),
('contact_skype', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)),
('contact_other', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
))
db.send_create_signal(u'customer', ['Client'])
# Adding model 'UserProfileFilters'
db.create_table(u'customer_userprofilefilters', (
('company', self.gf('django.db.models.fields.related.OneToOneField')(related_name='profile_filters', unique=True, primary_key=True, to=orm['customer.UserProfile'])),
('show_profile_type', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_inn', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_ogrn', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_okpo', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_glavbuh', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_bank_account', self.gf('django.db.models.fields.BooleanField')(default=True)),
('bank_account', self.gf('django.db.models.fields.related.ForeignKey')(default=None, related_name='+', null=True, blank=True, to=orm['customer.BankAccount'])),
('show_contact_info', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_real_address', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_phone', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_fax', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_email', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_site', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_ip_boss_fio', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_svid_gos_reg', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_ip_reg_date', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_name', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_full_name', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_kpp', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_org_boss_title_and_fio', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_na_osnovanii', self.gf('django.db.models.fields.BooleanField')(default=True)),
('show_jur_address', self.gf('django.db.models.fields.BooleanField')(default=True)),
))
db.send_create_signal(u'customer', ['UserProfileFilters'])
# Adding model 'License'
db.create_table(u'customer_license', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('company', self.gf('django.db.models.fields.related.ForeignKey')(related_name='licenses', to=orm['customer.UserProfile'])),
('term', self.gf('django.db.models.fields.IntegerField')()),
('date_from', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('date_to', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('payform', self.gf('django.db.models.fields.IntegerField')(default=0)),
('status', self.gf('django.db.models.fields.IntegerField')(default=0)),
('order_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
('paid_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('pay_sum', self.gf('django.db.models.fields.IntegerField')()),
('deleted', self.gf('django.db.models.fields.BooleanField')(default=False)),
))
db.send_create_signal(u'customer', ['License'])
# Adding model 'LicensePrice'
db.create_table(u'customer_licenseprice', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('term', self.gf('django.db.models.fields.IntegerField')()),
('price', self.gf('django.db.models.fields.IntegerField')()),
))
db.send_create_signal(u'customer', ['LicensePrice'])
def backwards(self, orm):
# Deleting model 'UserProfile'
db.delete_table(u'customer_userprofile')
# Deleting model 'BankAccount'
db.delete_table(u'customer_bankaccount')
# Deleting model 'Client'
db.delete_table(u'customer_client')
# Deleting model 'UserProfileFilters'
db.delete_table(u'customer_userprofilefilters')
# Deleting model 'License'
db.delete_table(u'customer_license')
# Deleting model 'LicensePrice'
db.delete_table(u'customer_licenseprice')
models = {
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_icq': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.license': {
'Meta': {'object_name': 'License'},
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': u"orm['customer.UserProfile']"}),
'date_from': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'date_to': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'order_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'paid_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'pay_sum': ('django.db.models.fields.IntegerField', [], {}),
'payform': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.licenseprice': {
'Meta': {'object_name': 'LicensePrice'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'price': ('django.db.models.fields.IntegerField', [], {}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
u'customer.userprofilefilters': {
'Meta': {'object_name': 'UserProfileFilters'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': u"orm['customer.BankAccount']"}),
'company': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile_filters'", 'unique': 'True', 'primary_key': 'True', 'to': u"orm['customer.UserProfile']"}),
'show_bank_account': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_contact_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_fax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_full_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_glavbuh': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_inn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_boss_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_reg_date': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_jur_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_kpp': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_na_osnovanii': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ogrn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_okpo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_org_boss_title_and_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_phone': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_profile_type': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_real_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_site': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_svid_gos_reg': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
}
}
complete_apps = ['customer']

@ -1,147 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'UserProfileFilters.show_logo'
db.add_column(u'customer_userprofilefilters', 'show_logo',
self.gf('django.db.models.fields.BooleanField')(default=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'UserProfileFilters.show_logo'
db.delete_column(u'customer_userprofilefilters', 'show_logo')
models = {
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_icq': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.license': {
'Meta': {'object_name': 'License'},
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': u"orm['customer.UserProfile']"}),
'date_from': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'date_to': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'order_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'paid_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'pay_sum': ('django.db.models.fields.IntegerField', [], {}),
'payform': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.licenseprice': {
'Meta': {'object_name': 'LicensePrice'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'price': ('django.db.models.fields.IntegerField', [], {}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
u'customer.userprofilefilters': {
'Meta': {'object_name': 'UserProfileFilters'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': u"orm['customer.BankAccount']"}),
'company': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile_filters'", 'unique': 'True', 'primary_key': 'True', 'to': u"orm['customer.UserProfile']"}),
'show_bank_account': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_contact_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_fax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_full_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_glavbuh': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_inn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_boss_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_reg_date': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_jur_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_kpp': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_logo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_na_osnovanii': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ogrn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_okpo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_org_boss_title_and_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_phone': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_profile_type': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_real_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_site': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_svid_gos_reg': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
}
}
complete_apps = ['customer']

@ -1,148 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'UserProfileFilters.show_address'
db.add_column(u'customer_userprofilefilters', 'show_address',
self.gf('django.db.models.fields.BooleanField')(default=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'UserProfileFilters.show_address'
db.delete_column(u'customer_userprofilefilters', 'show_address')
models = {
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_icq': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.license': {
'Meta': {'object_name': 'License'},
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': u"orm['customer.UserProfile']"}),
'date_from': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'date_to': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'order_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'paid_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'pay_sum': ('django.db.models.fields.IntegerField', [], {}),
'payform': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.licenseprice': {
'Meta': {'object_name': 'LicensePrice'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'price': ('django.db.models.fields.IntegerField', [], {}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
u'customer.userprofilefilters': {
'Meta': {'object_name': 'UserProfileFilters'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': u"orm['customer.BankAccount']"}),
'company': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile_filters'", 'unique': 'True', 'primary_key': 'True', 'to': u"orm['customer.UserProfile']"}),
'show_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_bank_account': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_contact_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_fax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_full_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_glavbuh': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_inn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_boss_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_reg_date': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_jur_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_kpp': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_logo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_na_osnovanii': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ogrn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_okpo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_org_boss_title_and_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_phone': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_profile_type': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_real_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_site': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_svid_gos_reg': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
}
}
complete_apps = ['customer']

@ -1,156 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Deleting field 'Client.contact_icq'
db.delete_column(u'customer_client', 'contact_icq')
# Adding field 'Client.ogrn'
db.add_column(u'customer_client', 'ogrn',
self.gf('django.db.models.fields.CharField')(default='', max_length=15),
keep_default=False)
def backwards(self, orm):
# Adding field 'Client.contact_icq'
db.add_column(u'customer_client', 'contact_icq',
self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True),
keep_default=False)
# Deleting field 'Client.ogrn'
db.delete_column(u'customer_client', 'ogrn')
models = {
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.license': {
'Meta': {'object_name': 'License'},
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': u"orm['customer.UserProfile']"}),
'date_from': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'date_to': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'order_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'paid_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'pay_sum': ('django.db.models.fields.IntegerField', [], {}),
'payform': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.licenseprice': {
'Meta': {'object_name': 'LicensePrice'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'price': ('django.db.models.fields.IntegerField', [], {}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
u'customer.userprofilefilters': {
'Meta': {'object_name': 'UserProfileFilters'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': u"orm['customer.BankAccount']"}),
'company': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile_filters'", 'unique': 'True', 'primary_key': 'True', 'to': u"orm['customer.UserProfile']"}),
'show_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_bank_account': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_contact_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_fax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_full_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_glavbuh': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_inn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_boss_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_reg_date': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_jur_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_kpp': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_logo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_na_osnovanii': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ogrn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_okpo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_org_boss_title_and_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_phone': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_profile_type': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_real_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_site': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_svid_gos_reg': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
}
}
complete_apps = ['customer']

@ -1,149 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'BankAccount.short_name'
db.add_column(u'customer_bankaccount', 'short_name',
self.gf('django.db.models.fields.CharField')(default='', max_length=100, blank=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'BankAccount.short_name'
db.delete_column(u'customer_bankaccount', 'short_name')
models = {
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'short_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.license': {
'Meta': {'object_name': 'License'},
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': u"orm['customer.UserProfile']"}),
'date_from': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'date_to': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'order_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'paid_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'pay_sum': ('django.db.models.fields.IntegerField', [], {}),
'payform': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.licenseprice': {
'Meta': {'object_name': 'LicensePrice'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'price': ('django.db.models.fields.IntegerField', [], {}),
'term': ('django.db.models.fields.IntegerField', [], {})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
u'customer.userprofilefilters': {
'Meta': {'object_name': 'UserProfileFilters'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': u"orm['customer.BankAccount']"}),
'company': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile_filters'", 'unique': 'True', 'primary_key': 'True', 'to': u"orm['customer.UserProfile']"}),
'show_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_bank_account': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_contact_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_fax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_full_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_glavbuh': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_inn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_boss_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ip_reg_date': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_jur_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_kpp': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_logo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_na_osnovanii': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_ogrn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_okpo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_org_boss_title_and_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_phone': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_profile_type': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_real_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_site': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'show_svid_gos_reg': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
}
}
complete_apps = ['customer']

@ -1,516 +0,0 @@
# -*- coding: utf-8 -*-
import os
from datetime import datetime, timedelta
from PIL import Image
from pytils import numeral
from dateutil.relativedelta import relativedelta
from django.db import models
from django.conf import settings
from django.db.models import Max
from django.core.urlresolvers import reverse
from . import consts, managers, utils
from project.myauth.models import DokUser
from project.commons.utils import only_numerics
PROFILE_IMAGES_UPLOAD_DIR = 'customer/profile/' # куда сохранять загруженные изображения
BOSS_SIGN_IMG_SIZE = (159, 65)
GLAVBUH_SIGN_IMG_SIZE = (159, 65)
STAMP_IMG_SIZE = (180, 180)
LOGO_SIZE = (351, 121)
def get_profile(user):
"""Возвращает профиль пользователя или None."""
try:
return user.profile
except:
return None
def upload_to(path, new_filename=None):
"""Куда и под каким именем сохранить загруженный файл."""
def get_upload_path(instance, filename):
filename = new_filename or filename
try:
profile_dir = instance.get_first_user().username
except:
profile_dir = 'NoUser'
return os.path.join(path, profile_dir, filename)
return get_upload_path
class UserProfile(models.Model):
"""Профиль пользователя."""
profile_type = models.PositiveSmallIntegerField(u'Тип профиля', choices=consts.PROFILE_TYPES)
# общие поля
boss_surname = models.CharField(u'Фамилия', max_length=30, default='',
help_text=u'Используется для строки "подпись" в документах.')
boss_name = models.CharField(u'Имя', max_length=30, default='')
boss_midname = models.CharField(u'Отчество', max_length=30, default='')
inn = models.CharField(u'ИНН', max_length=12, default='') # длина: 10 для организаций, 12 для ИП
ogrn = models.CharField(u'ОГРН/ОГРНИП', max_length=15, default='') # длина: 13 для организаций, 15 для ИП
okpo = models.CharField(u'ОКПО', max_length=10, blank=True, default='') # длина: 8 для организаций, 8 или 10 для ИП
glavbuh_surname = models.CharField(u'Фамилия', max_length=30, blank=True, default='',
help_text=u'Используется для строки "подпись" в документах.')
glavbuh_name = models.CharField(u'Имя', max_length=30, blank=True, default='')
glavbuh_midname = models.CharField(u'Отчество', max_length=30, blank=True, default='')
address = models.CharField(u'Фактический адрес', max_length=256, default='',
help_text=u'Будет подставляться в создаваемые счета, акты и накладные.')
jur_address = models.CharField(u'Юридический адрес', max_length=256, blank=True, default='',
help_text=u'Как в учредительных документах.')
real_address = models.CharField(u'Почтовый адрес', max_length=256, blank=True, default='',
help_text=u'Используется только для карточки компании.')
phone_code = models.CharField(u'Код города', max_length=10, blank=True, default='')
phone = models.CharField(u'Номер телефона', max_length=20, blank=True, default='')
fax_code = models.CharField(u'Код города', max_length=10, blank=True, default='')
fax = models.CharField(u'Номер телефона', max_length=20, blank=True, default='')
email = models.EmailField(u'Электронная почта', max_length=75, blank=True, default='')
site = models.CharField(u'Сайт', max_length=256, blank=True, default='')
# поля, только для ИП
svid_gos_reg = models.CharField(u'Свид-во о гос. регистрации', max_length=256, blank=True, default='',
help_text=u'Требуется для счет-фактуры.')
ip_reg_date = models.DateField(u'Дата регистрации ИП', blank=True, null=True)
# поля, только для Организации
name = models.CharField(u'Краткое название организации', max_length=256, default='',
help_text=u'Будет подставляться в создаваемые документы.')
full_name = models.CharField(u'Полное название организации', max_length=256, blank=True, default='',
help_text=u'Как в учредительных документах.')
kpp = models.CharField(u'КПП', max_length=9, default='')
boss_title = models.CharField(u'Должность руководителя', max_length=256, blank=True, default='')
na_osnovanii = models.CharField(u'Действует на основании', max_length=256, blank=True, default='')
# подписи, печать и логотип
boss_sign = models.ImageField(u'Подпись руководителя', blank=True, default='',
upload_to=upload_to(PROFILE_IMAGES_UPLOAD_DIR, 'boss_sign.bmp'))
glavbuh_sign = models.ImageField(u'Подпись бухгалтера', blank=True, default='',
upload_to=upload_to(PROFILE_IMAGES_UPLOAD_DIR, 'glavbuh_sign.bmp'))
stamp = models.ImageField(u'Печать', blank=True, default='',
upload_to=upload_to(PROFILE_IMAGES_UPLOAD_DIR, 'stamp.bmp'))
logo = models.ImageField(u'Логотип', blank=True, default='',
upload_to=upload_to(PROFILE_IMAGES_UPLOAD_DIR, 'logo.bmp'))
created_at = models.DateTimeField(u'Создан', auto_now_add=True)
updated_at = models.DateTimeField(u'Изменен', auto_now=True)
active = models.BooleanField(u'Активен', default=False)
confirmed = models.BooleanField(u'Подтверждён', default=False)
user_session_key = models.CharField(u'Ключ сессии (служебная информация)', max_length=256, blank=True, default='',
help_text=u'Руками не тро...')
objects = managers.UserProfileManager()
class Meta:
verbose_name = u'Реквизиты (профиль)'
verbose_name_plural = u'Реквизиты (профили)'
def __unicode__(self):
return u'%s, ИНН %s' % (self.get_company_name()[0:30], self.inn or u'не указан')
def save(self, *args, **kwargs):
self.inn = only_numerics(self.inn)
self.ogrn = only_numerics(self.ogrn)
self.okpo = only_numerics(self.okpo)
self.kpp = only_numerics(self.kpp)
def process_img(orig_img, size):
w = orig_img.width
h = orig_img.height
if w > size[0] or h > size[1]:
filename = str(orig_img.path)
img = Image.open(filename).convert("RGB")
img.thumbnail(size, Image.ANTIALIAS)
img.save(filename, 'BMP')
super(UserProfile, self).save(*args, **kwargs)
if self.boss_sign:
process_img(self.boss_sign, size=BOSS_SIGN_IMG_SIZE)
if self.glavbuh_sign:
process_img(self.glavbuh_sign, size=GLAVBUH_SIGN_IMG_SIZE)
if self.stamp:
process_img(self.stamp, size=STAMP_IMG_SIZE)
if self.logo:
process_img(self.logo, size=LOGO_SIZE)
def is_ip(self):
return self.profile_type == consts.IP_PROFILE
def is_org(self):
return self.profile_type == consts.ORG_PROFILE
def check_name_not_filled(self):
"""`ИП ФИО` или `Название Организации`."""
if self.is_ip():
return self.get_boss_full_fio().strip() == ''
elif self.is_org():
return self.name.strip() == ''
return False
def get_main_bank_account(self):
try:
bank_accounts = BankAccount.objects.filter(company=self, is_main=True)[0]
except:
return None
def get_first_user(self):
try:
first_user = DokUser.objects.filter(profile=self)[0]
return first_user
except:
return None
def check_main_reqs_not_filled(self):
result = self.check_name_not_filled() or self.inn == '' or self.address == '' or \
self.get_boss_fio() == '' or self.get_main_bank_account() == ''
if result:
return True
if self.is_ip():
return self.ogrn == ''
elif self.is_org():
return self.kpp == ''
def get_company_name(self):
"""`ИП ФИО` или `Название Организации`."""
if self.profile_type == consts.IP_PROFILE:
return u'ИП %s' % self.get_boss_full_fio()
elif self.profile_type == consts.ORG_PROFILE:
return self.name.strip()
return u''
def get_inn_and_kpp(self):
"""Возвращает пару ИНН/КПП или только ИНН, если это ИП или КПП не заполнен."""
if self.profile_type == consts.ORG_PROFILE:
kpp = self.kpp.strip()
if kpp:
return u'%s/%s' % (self.inn, kpp,)
return self.inn
def get_boss_title(self):
"""Текст 'Индивидуальный предприниматель' или 'Руководитель организации'."""
if self.profile_type == consts.IP_PROFILE:
return u'Индивидуальный предприниматель'
elif self.profile_type == consts.ORG_PROFILE:
return u'Руководитель организации'
return u''
def get_boss_fio(self):
"""Фамилия и инициалы руководителя ИП/организации."""
if self.boss_surname and self.boss_name and self.boss_midname:
return u'%s %s.%s.' % (self.boss_surname, self.boss_name[0], self.boss_midname[0],)
return u''
def get_boss_full_fio(self):
"""Полное ФИО руководителя ИП/организации."""
return (u'%s %s %s' % (self.boss_surname, self.boss_name, self.boss_midname,)).strip()
def get_glavbuh_fio(self):
"""Фамилия и инициалы главного бухгалтера."""
if self.glavbuh_surname and self.glavbuh_name and self.glavbuh_midname:
return (u'%s %s. %s.' % (self.glavbuh_surname, self.glavbuh_name[0], self.glavbuh_midname[0],)).strip()
return u''
def get_glavbuh_full_fio(self):
"""Полное ФИО главного бухгалтера."""
return (u'%s %s %s' % (self.glavbuh_surname, self.glavbuh_name, self.glavbuh_midname,)).strip()
def get_full_phone(self):
"""(Код города) Номер телефона."""
phone_code = self.phone_code.strip('() ')
phone_code = u'(%s)' % phone_code if phone_code else phone_code
return (u'%s %s' % (phone_code, self.phone,)).strip()
def get_email(self):
try:
return self.get_first_user().email
except:
return None
def get_full_fax(self):
"""(Код города) Номер факса."""
fax_code = self.fax_code.strip('() ')
fax_code = u'(%s)' % fax_code if fax_code else fax_code
return (u'%s %s' % (fax_code, self.fax,)).strip()
class BankAccount(models.Model):
"""Расчетные счета."""
company = models.ForeignKey(UserProfile, related_name='bank_accounts')
bik = models.CharField(u'БИК', max_length=10)
name = models.CharField(u'Наименование банка', max_length=256)
short_name = models.CharField(u'Сокращенное название банка', max_length=100, blank=True, default='')
address = models.CharField(u'Местонахождение', max_length=256, blank=True, default='') # TODO delete field?
korr_account = models.CharField(u'Корр. счет', max_length=20)
account = models.CharField(u'Расчетный счет', max_length=20)
is_main = models.BooleanField(u'Основной счет', default=False)
created_at = models.DateTimeField(u'Создан', auto_now_add=True)
updated_at = models.DateTimeField(u'Изменен', auto_now=True)
objects = managers.BankAccountManager()
class Meta:
verbose_name = u'Расчётный счет'
verbose_name_plural = u'Расчётные счета'
ordering = ['-created_at']
def __unicode__(self):
return (u'%s, %s' % (self.account, self.short_name[0:30] or self.name[0:30],)).strip()
def save(self, *args, **kwargs):
self.bik = only_numerics(self.bik)
self.korr_account = only_numerics(self.korr_account)
self.account = only_numerics(self.account)
super(BankAccount, self).save(*args, **kwargs)
if self.is_main:
# если задано, что это будет основной счет, то сбросить у остальных счетов пользователя этот признак
BankAccount.objects.filter(company=self.company, is_main=True).exclude(pk=self.pk).update(is_main=False)
else:
# если нет основного счета, то установить его принудительно
BankAccount.objects.force_main(company=self.company)
def delete(self, *args, **kwargs):
super(BankAccount, self).delete(*args, **kwargs)
# если нет основного счета, то установить его принудительно
BankAccount.objects.force_main(company=self.company)
class Client(models.Model):
"""Контрагенты."""
company = models.ForeignKey(UserProfile, related_name='clients')
name = models.CharField(u'Наименование', max_length=256, db_index=True)
inn = models.CharField(u'ИНН', max_length=12)
kpp = models.CharField(u'КПП', max_length=9, blank=True, default='') # Организация
ogrn = models.CharField(u'ОГРН', max_length=15, default='')
okpo = models.CharField(u'ОКПО', max_length=10, blank=True, default='') # ИП
address = models.CharField(u'Юр. адрес', max_length=256)
# банковские реквизиты
bank_bik = models.CharField(u'БИК', max_length=10, blank=True, default='')
bank_name = models.CharField(u'Наименование банка', max_length=256, blank=True, default='')
bank_address = models.CharField(u'Местонахождение', max_length=256, blank=True, default='') # TODO delete field?
bank_korr_account = models.CharField(u'Корр. счет', max_length=20, blank=True, default='')
bank_account = models.CharField(u'Расчетный счет', max_length=20, blank=True, default='')
# контакты
contact_name = models.CharField(u'Имя', max_length=50, blank=True, default='')
contact_email = models.EmailField(u'E-mail', max_length=50, blank=True, default='')
contact_phone = models.CharField(u'Телефон', max_length=50, blank=True, default='')
contact_skype = models.CharField(u'Skype', max_length=20, blank=True, default='')
contact_other = models.CharField(u'Другое', max_length=256, blank=True, default='')
created_at = models.DateTimeField(u'Создан', auto_now_add=True)
updated_at = models.DateTimeField(u'Изменен', auto_now=True)
objects = managers.ClientManager()
class Meta:
verbose_name = u'Контрагент'
verbose_name_plural = u'Контрагенты'
ordering = ['name', '-created_at']
def __unicode__(self):
return (u'%s, ИНН %s' % (self.name[0:30], self.inn or u'не указан',)).strip()
def save(self, *args, **kwargs):
self.inn = only_numerics(self.inn)
self.kpp = only_numerics(self.kpp)
self.ogrn = only_numerics(self.ogrn)
self.okpo = only_numerics(self.okpo)
self.bank_bik = only_numerics(self.bank_bik)
self.bank_korr_account = only_numerics(self.bank_korr_account)
self.bank_account = only_numerics(self.bank_account)
super(Client, self).save(*args, **kwargs)
def get_inn_and_kpp(self):
"""Возвращает пару ИНН/КПП или только ИНН, если КПП не заполнен."""
kpp = self.kpp.strip()
if kpp:
return u'%s/%s' % (self.inn, kpp,)
return self.inn
class UserProfileFilters(models.Model):
"""Фильтрация реквизитов: какие данные показывать/скрывать при генерации карточки компании."""
company = models.OneToOneField(UserProfile, related_name='profile_filters', primary_key=True)
# общие фильтры
show_profile_type = models.BooleanField(u'Тип профиля', default=True)
show_inn = models.BooleanField(u'ИНН', default=True)
show_ogrn = models.BooleanField(u'ОГРН/ОГРНИП', default=True)
show_okpo = models.BooleanField(u'ОКПО', default=True)
show_glavbuh = models.BooleanField(u'Главный бухгалтер', default=True)
show_bank_account = models.BooleanField(u'Банковские реквизиты', default=True)
bank_account = models.ForeignKey(BankAccount, related_name='+', verbose_name=u'Расчетный счет', blank=True,
null=True, default=None)
show_contact_info = models.BooleanField(u'Контактная информация', default=True)
show_address = models.BooleanField(u'Фактический адрес', default=True)
show_jur_address = models.BooleanField(u'Юридический адрес', default=True)
show_real_address = models.BooleanField(u'Почтовый адрес', default=True)
show_phone = models.BooleanField(u'Телефон', default=True)
show_fax = models.BooleanField(u'Факс', default=True)
show_email = models.BooleanField(u'Электронная почта', default=True)
show_site = models.BooleanField(u'Сайт', default=True)
show_logo = models.BooleanField(u'Логотип', default=True)
# только для ИП
show_ip_boss_fio = models.BooleanField(u'Фамилия, Имя, Отчество', default=True)
show_svid_gos_reg = models.BooleanField(u'Свид-во о гос. регистрации', default=True)
show_ip_reg_date = models.BooleanField(u'Дата регистрации ИП', default=True)
# только для Организации
show_name = models.BooleanField(u'Краткое название организации', default=True)
show_full_name = models.BooleanField(u'Полное название организации', default=True)
show_kpp = models.BooleanField(u'КПП', default=True)
show_org_boss_title_and_fio = models.BooleanField(u'Руководитель (Должность, ФИО)', default=True)
show_na_osnovanii = models.BooleanField(u'Действует на основании', default=True)
objects = managers.UserProfileFiltersManager()
class Meta:
verbose_name = u'Фильтры реквизитов'
verbose_name_plural = u'Фильтры реквизитов'
def __unicode__(self):
return u'%s' % self.user.email
def save(self, *args, **kwargs):
# всегда включены
self.show_ip_boss_fio = True
self.show_name = True
super(UserProfileFilters, self).save(*args, **kwargs)
class License(models.Model):
company = models.ForeignKey(UserProfile, related_name='licenses', verbose_name=u'пользователь')
term = models.IntegerField(verbose_name=u'срок лицензии')
date_from = models.DateField(u'дата начала', null=True, blank=True)
date_to = models.DateField(u'дата окончания', null=True, blank=True)
payform = models.IntegerField(verbose_name=u'форма оплаты',
choices=consts.PAYFORMS, default=0)
status = models.IntegerField(verbose_name=u'статус лицензии',
choices=consts.LICENSE_STATUSES, default=0)
order_date = models.DateField(verbose_name=u'дата заказа', auto_now_add=True)
paid_date = models.DateField(verbose_name=u'дата оплаты', null=True, blank=True)
pay_sum= models.IntegerField(verbose_name=u'сумма оплаты')
deleted = models.BooleanField(u'удалено', default=False)
def __init__(self, *args, **kwargs):
super(License, self).__init__(*args, **kwargs)
self.__prev_date = self.paid_date
def __unicode__(self):
return u'%s - %s %s (%d %s)' % (
self.company.get_company_name(),
self.term,
numeral.choose_plural(self.term, u"месяц, месяца, месяцев"),
self.pay_sum,
numeral.choose_plural(self.pay_sum, u"рубль, рубля, рублей"),
)
def save(self, *args, **kwargs):
if not self.__prev_date and self.paid_date:
max_date_license = License.objects.filter(company=self.company).aggregate(Max('date_to'))['date_to__max']
today = datetime.now().date()
if max_date_license < today:
max_date_license = today - timedelta(1)
self.date_from = max_date_license + relativedelta(days=1)
self.date_to = self.date_from + relativedelta(months=self.term, days=-1)
self.company.active = True
self.company.save()
self.status = 1
utils.check_one_profile(self.company, License, datetime.now(), manual=True)
super(License, self).save(*args, **kwargs)
def get_company(self):
return self.company.get_company_name()
def get_action_link(self):
if self.status == 0:
if self.payform == 0:
return u'<a href="%s">Скачать счёт</a>' % reverse('customer_license_get_doc', kwargs={'order_num': self.id})
elif self.payform == 1:
return u'Оплатить счёт'
elif self.payform == 2:
return u'<a href="%s">Скачать квитанцию</a>' % reverse('customer_license_get_doc', kwargs={'order_num': self.id})
elif self.status in [1, 2]:
return u'История операций'
else:
return ''
def get_term(self):
if self.term == 0:
return u'45 дней'
else:
return u'%s %s' % (self.term,
numeral.choose_plural(self.term, u"месяц, месяца, месяцев"),
)
def get_paid_status(self):
if self.status == 1:
return u'Лицензия оплачена, ещё не активирована'
elif self.status in [2, -1]:
left = relativedelta(self.date_to, datetime.today())
if left.months:
left_str = '%d %s %d %s' % (left.months,
numeral.choose_plural(left.months, u"месяц, месяца, месяцев"),
left.days,
numeral.choose_plural(left.days, u"день, дня, дней"),
)
else:
left_str = '%d %s' % (
left.days,
numeral.choose_plural(left.days, u"день, дня, дней"),
)
return u'Лицензия активирована: осталось %s' % left_str
elif self.status == 3:
return u'Время истекло'
else:
return None
class LicensePrice(models.Model):
term = models.IntegerField(verbose_name=u'срок лицензии',
choices=consts.TERMS)
price = models.IntegerField(verbose_name=u'сумма оплаты')
def __unicode__(self):
return u'%s %s (%d %s)' % (self.term,
numeral.choose_plural(self.term, u"месяц, месяца, месяцев"),
self.price,
numeral.choose_plural(self.price, u"рубль, рубля, рублей"),
)

@ -1,33 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from datetime import datetime, timedelta
import traceback
from django.core.mail import mail_admins
from celery import shared_task
from .models import License, UserProfile
from .utils import check_one_profile
@shared_task
def check_license():
profiles = UserProfile.objects.all()
now = datetime.today()
#licenses = License.objects.filter(date_to__lt=now, status__in=[-1, 2], deleted=False)
#licenses.update(status=3)
licenses = License.objects.filter(order_date__lte=now - timedelta(10), status=0, deleted=False)
licenses.update(status=4)
for profile in profiles:
try:
check_one_profile(profile, License, now)
except Exception as e:
mail_admins(subject=u'customer: check_license error',
message=u'Profile id=%s.\n\n%s' % (profile.pk, traceback.format_exc(e))
)
return None

@ -1,16 +0,0 @@
"""
This file demonstrates writing tests using the unittest module. These will pass
when you run "manage.py test".
Replace this with more appropriate tests for your application.
"""
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.assertEqual(1 + 1, 2)

@ -1,63 +0,0 @@
# -*- coding: utf-8 -*-
from django.conf.urls import *
from . import views
from .views import profile, profile_ajax, license, docs
from .views import bank_accounts,bank_accounts_ajax
from .views import clients, clients_ajax
urlpatterns = patterns('',
# личный кабинет
url(r'^$', views.customer_index, name='customer_index'),
# --- профиль
url(r'^profile/$', profile.profile_view, name='customer_profile_view'),
url(r'^profile/edit/$', profile.profile_edit, name='customer_profile_edit'),
url(r'^profile/email/$', profile.profile_email, name='customer_profile_email'),
url(r'^license/$', license.order_license, name='customer_order_license'),
url(r'^delete_license/(?P<pk>\d+)/$', license.delete_license, name='customer_delete_license'),
url(r'^get_doc/(?P<order_num>\d+)/$', docs.get_doc, name='customer_license_get_doc'),
url(r'^payment/confirm/(?P<payment_id>\d+)$', license.yandex_pay, name='yamoney_confirm'),
url(r'^payment/result/$', license.payment_result, name='yamoney_result'),
url(r'^payment/success/$', license.payment_success, name='yamoney_success'),
url(r'^payment/fail/$', license.payment_fail, name='yamoney_fail'),
url(r'^license_list/$', license.license_list, name='customer_license_list'),
url(r'^paid_list/$', license.paid_list, name='customer_paid_list'),
# --- профиль AJAX
url(r'^profile/filters/edit/ajax/$', profile_ajax.profile_filters_edit_ajax, name='customer_profile_filters_edit_ajax'),
url(r'^profile/email/ajax/$', profile_ajax.profile_email_ajax, name='customer_profile_email_ajax'),
# --- расчетные счета
url(r'^bank-accounts/$', bank_accounts.bank_accounts_list, name='customer_bank_accounts_list'),
url(r'^bank-accounts/page/(?P<page_num>[0-9]+)/$', bank_accounts.bank_accounts_list, name='customer_bank_accounts_list'),
url(r'^bank-accounts/add/$', bank_accounts.bank_accounts_add, name='customer_bank_accounts_add'),
url(r'^bank-accounts/(?P<id>\d+)/edit/$', bank_accounts.bank_accounts_edit, name='customer_bank_accounts_edit'),
url(r'^bank-accounts/(?P<id>\d+)/delete/$', bank_accounts.bank_accounts_delete, name='customer_bank_accounts_delete'),
# --- расчетные счета AJAX
url(r'^bank-accounts/ajax/$', bank_accounts_ajax.bank_accounts_list_ajax, name='customer_bank_accounts_list_ajax'),
url(r'^bank-accounts/(?P<id>\d+)/get/ajax/$', bank_accounts_ajax.bank_accounts_get_ajax,
name='customer_bank_accounts_get_ajax'),
url(r'^bank-accounts/add/ajax/$', bank_accounts_ajax.bank_accounts_add_ajax, name='customer_bank_accounts_add_ajax'),
url(r'^bank-accounts/(?P<id>\d+)/edit/ajax/$', bank_accounts_ajax.bank_accounts_edit_ajax,
name='customer_bank_accounts_edit_ajax'),
url(r'^bank-accounts/(?P<id>\d+)/delete/ajax/$', bank_accounts_ajax.bank_accounts_delete_ajax,
name='customer_bank_accounts_delete_ajax'),
# --- контрагенты
url(r'^clients/$', clients.clients_list, name='customer_clients_list'),
url(r'^clients/page/(?P<page_num>[0-9]+)/$', clients.clients_list, name='customer_clients_list'),
url(r'^clients/add/$', clients.clients_add, name='customer_clients_add'),
url(r'^clients/(?P<id>\d+)/edit/$', clients.clients_edit, name='customer_clients_edit'),
url(r'^clients/(?P<id>\d+)/delete/$', clients.clients_delete, name='customer_clients_delete'),
# --- контрагенты AJAX
url(r'^clients/(?P<id>\d+)/get/ajax/$', clients_ajax.clients_get_ajax, name='customer_clients_get_ajax'),
url(r'^clients/add/ajax/$', clients_ajax.clients_add_ajax, name='customer_clients_add_ajax'),
url(r'^clients/(?P<id>\d+)/edit/ajax/$', clients_ajax.clients_edit_ajax, name='customer_clients_edit_ajax'),
url(r'^clients/(?P<id>\d+)/delete/ajax/$', clients_ajax.clients_delete_ajax, name='customer_clients_delete_ajax'),
url(r'^tmp_upload/ajax/$', profile.tmp_upload, name='upload_tmp_file'),
)

@ -1,86 +0,0 @@
# -*- coding: utf-8 -*-
from datetime import timedelta
from django.conf import settings
from django.core.mail import EmailMessage
from django.template.loader import render_to_string
SUPPORT_EMAIL = getattr(settings, 'SUPPORT_EMAIL')
def check_one_profile(profile, License, now, manual=False):
profile_is_active = profile.active
licenses = License.objects.filter(company=profile, date_from__lte=now, date_to__gte=now, status__in=[-1, 1, 2], deleted=False)
licenses.filter(status=1).update(status=2)
if licenses:
profile.active = True
else:
profile.active = False
profile.save()
user_email = profile.users.get().email
if profile.active and not profile_is_active:
template_name = 'myauth/license_activated.txt'
subject = u'Документор: Профиль активирован'
dict_context = {'user_email': user_email,
'support_email': SUPPORT_EMAIL,
'license_starts': licenses[0].date_from,
'license_ends': licenses[0].date_to,
}
email_body = render_to_string(template_name, dict_context)
email = EmailMessage(subject=subject, to=(user_email,), body=email_body)
email.send()
licenses_remain = License.objects.filter(company=profile, date_from__gt=now + timedelta(1), status=1, deleted=False)
licenses_to_pay = License.objects.filter(company=profile, status=0, deleted=False)
if not licenses_remain and not manual:
licenses = License.objects.filter(company=profile, date_to__lt=now, status__in=[-1, 2], deleted=False)
licenses.update(status=3)
if licenses:
template_name = 'myauth/license_ended.txt'
subject = u'Документор: срок действия лицензии окончен'
dict_context = {'user_email': user_email,
'support_email': SUPPORT_EMAIL,
'license_ends': licenses[0].date_to,
'licenses_to_pay': licenses_to_pay,
}
email_body = render_to_string(template_name, dict_context)
email = EmailMessage(subject=subject, to=(user_email,), body=email_body)
email.send()
licenses = License.objects.filter(company=profile, date_to=now + timedelta(1), status__in=[-1, 2], deleted=False)
if licenses:
template_name = 'myauth/license_ends.txt'
subject = u'Документор: окончание срока действия лицензии'
dict_context = {'user_email': user_email,
'support_email': SUPPORT_EMAIL,
'license_ends': licenses[0].date_to,
'licenses_to_pay': licenses_to_pay,
}
email_body = render_to_string(template_name, dict_context)
email = EmailMessage(subject=subject, to=(user_email,), body=email_body)
email.send()
if not manual:
licenses = License.objects.filter(company=profile, order_date=now - timedelta(9), status=0, deleted=False)
if licenses:
template_name = 'myauth/license_to_pay.txt'
subject = u'Документор: есть неоплаченные счета'
dict_context = {'user_email': user_email,
'support_email': SUPPORT_EMAIL,
}
email_body = render_to_string(template_name, dict_context)
email = EmailMessage(subject=subject, to=(user_email,), body=email_body)
email.send()
def raise_if_no_profile(request):
if not request.user.profile:
raise Exception(u"Profile not found for user: %d, '%s'" % (request.user.pk, request.user.username))

@ -1,105 +0,0 @@
# -*- coding: utf-8 -*-
import os
import re
from django.conf import settings
from django.http import Http404, HttpResponseRedirect, HttpResponseForbidden, HttpResponse
from xlwt import easyxf
from xlrd import open_workbook
from xlutils.copy import copy
from pytils.numeral import rubles
from ..models import License
from ..utils import raise_if_no_profile
XLS_ROOT = os.path.join(settings.TEMPLATE_DIRS[0], 'xls')
def get_doc(request, order_num=None):
if not request.user.is_authenticated():
raise HttpResponseForbidden
raise_if_no_profile(request)
license = License.objects.get(pk=order_num)
pm = license.payform
data = request.user.profile
if pm == 0:
tmp_name = 'bill.xls'
file_name = "Invoice No.%s.xls" % (order_num,)
elif pm == 2:
tmp_name = '4pd.xls'
file_name = "Kvitanciya na oplatu zakaza No.%s.xls" % (order_num,)
else:
raise Http404()
response = HttpResponse(mimetype="application/vnd.ms-excel")
response['Content-Disposition'] = 'attachment; filename=%s' % file_name
rb = open_workbook(os.path.join(XLS_ROOT, tmp_name), on_demand=True, formatting_info=True)
wb = copy(rb)
ws = wb.get_sheet(0)
# отключить колонтитулы
ws.show_headers = 0
ws.print_headers = 0
ws.header_str = ''
ws.footer_str = ''
if pm == 0: # заполняем счет
style0 = easyxf('font: name Times New Roman, height 280, bold True;')
style0_center = easyxf('font: name Times New Roman, height 280, bold True; align: horiz center')
style1 = easyxf('font: name Times New Roman, height 180;')
style2 = easyxf('font: name Times New Roman, height 180, bold True;')
style3 = easyxf('font: name Times New Roman, height 180;'
'border: top thin, left thin, right thin, bottom thin;'
)
style4 = easyxf('font: name Times New Roman, height 180, bold True;'
'border: top thin, left thin, right thin, bottom thin;'
)
style4.num_format_str = "#,##0.00"
ws.write(11, 0, u"СЧЕТ № %s от %s" % (order_num, license.order_date.strftime('%d.%m.%Y')), style0_center)
ws.write(13, 0, u"Покупатель: %s" % data.name, style1)
ws.write(16, 2, u"Лицензия Dokumentor.ru на %s" % (license.get_term()), style3)
style3.num_format_str = "#,##0.00"
ws.write(16, 36, license.pay_sum, style3)
ws.write(16, 44, license.pay_sum, style3)
ws.write(17, 44, license.pay_sum, style4)
ws.write(19, 44, license.pay_sum, style4)
ws.write(21, 0, u"Всего наименование 1, на сумму %s,00 руб." % license.pay_sum, style1)
ws.write(23, 0, u"%s." % rubles(license.pay_sum).capitalize(), style2)
ws.insert_bitmap(os.path.join(XLS_ROOT, 'stamp.bmp'), 26, 12, y=3, scale_y=1.1)
elif pm == 2: # заполняем квитанцию
style0 = easyxf('font: name Times New Roman, height 160, bold True;'
'border: bottom thin;'
)
style1 = easyxf('font: name Times New Roman, height 160, bold True;'
'border: bottom thin;'
'align: horiz center;'
)
# заполняем оригинал
ws.write(11, 4, u"Лицензия Dokumentor.ru на %s" % (license.get_term()), style1)
ws.write(13, 13, data.get_boss_fio(), style0)
ws.write(14, 13, re.sub("^\s+|\n|\r|\s+$", ' ', data.address), style0)
ws.write(15, 11, license.pay_sum, style1)
# заполняем копию
ws.write(31, 4, u"Лицензия Dokumentor.ru на %s" % (license.get_term()), style1)
ws.write(33, 13, data.get_boss_fio(), style0)
ws.write(34, 13, re.sub("^\s+|\n|\r|\s+$", ' ', data.address), style0)
ws.write(35, 11, license.pay_sum, style1)
else:
raise Http404()
wb.save(response)
return response

@ -1,161 +0,0 @@
# -*- coding: utf-8 -*-
import json
import hashlib
from django.shortcuts import render, redirect
from django.http import Http404, HttpResponseRedirect, HttpResponseForbidden, HttpResponse
from django.conf import settings
from django.views.decorators.csrf import csrf_exempt
from django.utils.http import urlquote
from django.contrib.auth.decorators import login_required
from django.template.response import TemplateResponse
from django.core.urlresolvers import reverse
from django.views.decorators.csrf import csrf_protect
from yandex_money.models import Payment
from ..models import License, LicensePrice
from ..consts import PAYFORMS
from ..forms import LicenseForm, YaForm
from ..utils import raise_if_no_profile
@login_required
@csrf_protect
def yandex_pay(request, payment_id):
template_name = 'customer/profile/yandex.html'
payment = Payment.objects.get(id=payment_id)
if payment.user != request.user:
raise
form = YaForm(instance=payment)
return render(request, template_name, {'form': form,
'ya_url': settings.YANDEX_MONEY_PAYMENT_URL})
@login_required
@csrf_protect
def order_license(request):
"""заказ лицензии
"""
raise_if_no_profile(request)
template_name = 'customer/profile/license.html'
form = LicenseForm(request.POST or None,
initial = {'term': LicensePrice.objects.all()[1], 'payform': 0})
dictionary = {
'form': form,
}
if form.is_valid():
new_license = License(company=request.user.profile,
term=form.cleaned_data['term'].term,
payform=form.cleaned_data['payform'],
pay_sum=form.cleaned_data['term'].price,
)
new_license.save()
if form.cleaned_data['payform'] == '1':
payment, _ = Payment.objects.get_or_create(order_amount=form.cleaned_data['term'].price,
payment_type=Payment.PAYMENT_TYPE.AC,
order_number=new_license.id,
)
payment.user=request.user
# payment.cps_email=request.user.email
payment.customer_number=request.user.email
# payment.customer_number=request.user.profile.get_company_name().strip()
payment.save()
return redirect(reverse('yamoney_confirm', kwargs={'payment_id': payment.id}))
return redirect(reverse('customer_license_list'))
return render(request, template_name, dictionary)
@login_required
def license_list(request):
"""Список счетов на лицензии
"""
raise_if_no_profile(request)
template_name = 'customer/profile/license_list.html'
licenses = License.objects.filter(company=request.user.profile, deleted=False, status__gt=-1).order_by('-id')
dictionary = {
'licenses': licenses,
}
return render(request, template_name, dictionary)
@login_required
def paid_list(request):
"""Оплаченные лицензии
"""
raise_if_no_profile(request)
template_name = 'customer/profile/paid_list.html'
licenses = License.objects.filter(company=request.user.profile,
status__in=[-1, 1, 2, 3, 4], deleted=False).order_by('-id')
dictionary = {
'licenses': licenses,
}
return render(request, template_name, dictionary)
@login_required
def delete_license(request, pk):
if not request.is_ajax():
return HttpResponseBadRequest()
raise_if_no_profile(request)
try:
license = License.objects.get(pk=pk, status=0, company=request.user.profile)
if request.method == 'POST':
license.deleted = True
license.save()
dictionary = {'res': 'Ok', 'id': pk}
except:
dictionary = {'res': 'fail'}
data = json.dumps(dictionary)
return HttpResponse(data, mimetype='application/json')
@csrf_exempt
def payment_result(request):
if request.method == 'POST':
try:
nInvId = request.POST.get('InvId')
nOutSum = request.POST.get('OutSum')
sSignatureValue = request.POST.get('SignatureValue')
SignatureValue = hashlib.md5('%s:%s:%s' % (nOutSum, nInvId, settings.ROBOKASSA_PASSWORD2)).hexdigest()
if sSignatureValue.upper() == SignatureValue.upper():
license = License.objects.get(pk=nInvId)
license.status = 1
license.save()
return HttpResponse('OK%s' % nInvId)
else:
return HttpResponse('bad sign')
except License.DoesNotExist:
return HttpResponseForbidden()
else:
return HttpResponseForbidden()
@csrf_exempt
def payment_success(request):
nInvId = request.GET.get('orderNumber')
order = License.objects.get(pk=nInvId)
context = {'success': True, 'order_num': nInvId}
return TemplateResponse(request, 'customer/profile/end_order.html', context)
@csrf_exempt
def payment_fail(request):
try:
nInvId = request.GET.get('')
message = u"Возникла проблема. Ваш Заказ не оплачен. Попробуйте оформить заявку снова, или позвоните по номеру."
return TemplateResponse(request, 'customer/profile/end_order.html', {'message': message, 'success': False})
except Order.DoesNotExist:
return HttpResponseForbidden()

@ -1,282 +0,0 @@
# -*- coding: utf-8 -*-
import os
import json
import tempfile
from email.header import Header
from django.shortcuts import render, redirect, get_object_or_404
from django.core.files import File
from django.views.decorators.csrf import csrf_protect
from django.contrib.auth.decorators import login_required
from django.template.loader import render_to_string
from django.core.mail import EmailMessage
from django.utils.encoding import smart_str
from django.conf import settings
from django.http import Http404, HttpResponse
# from sorl.thumbnail import get_thumbnail
from easy_thumbnails.files import get_thumbnailer
from project.commons.pdf_tools import render_pdf_to_string, pdf_to_response
from .. import models, forms
from ..decorators import license_required
from ..utils import raise_if_no_profile
PDF_PROFILE_NAME = u'Реквизиты.pdf'
SUPPORT_EMAIL = getattr(settings, 'SUPPORT_EMAIL', '')
# -----------------------------------------------------------------------------
@login_required
@csrf_protect
def profile_view(request):
"""Просмотр профиля пользователя, фильтрация реквизитов, скачать/отправить реквизиты по почте."""
raise_if_no_profile(request)
template_name = 'customer/profile/view.html'
profile = request.user.profile
accounts = models.BankAccount.objects.get_all(profile)
filters_form_class = forms.get_profile_filters_form_class(profile.profile_type)
filters = models.UserProfileFilters.objects.get_or_create_filters(user=request.user)
if request.method == 'POST':
filters_form = filters_form_class(data=request.POST, instance=filters, profile=profile, accounts=accounts)
if filters_form.is_valid():
filters = filters_form.save()
if 'download-pdf' in request.POST:
#return _profile_get_pdf(request, profile, filters.bank_account, filters) # для отладки
return profile_as_pdf(request, profile, filters.bank_account, filters)
elif 'email-pdf' in request.POST:
return redirect('customer_profile_email')
return redirect('customer_profile_view') # редирект на себя, чтобы не сабмитили форму по F5
else:
filters_form = filters_form_class(instance=filters, label_suffix='', profile=profile, accounts=accounts)
dictionary = {
'profile': profile,
'accounts': accounts,
'filters_form': filters_form,
'email_profile_form': forms.EmailProfileForm(),
}
return render(request, template_name, dictionary)
@login_required
@csrf_protect
def profile_edit(request):
"""Редактировать профиль пользователя."""
raise_if_no_profile(request)
template_name = 'customer/profile/edit.html'
success_url = 'customer_profile_view'
if request.method == 'POST' and '_cancel' in request.POST:
return redirect(success_url)
profile = request.user.profile
form_class = forms.get_profile_form_class(profile.profile_type)
accounts = models.BankAccount.objects.get_all(profile)
bank_account_form = forms.BankAccountForm(initial={'company': profile})
dadata_api_key = settings.DADATA_API_KEY
if request.method == 'POST':
form = form_class(data=request.POST, files=request.FILES, instance=profile)
if form.is_valid():
item = form.save(commit=False)
for img_url in ('tmb_logo', 'tmb_boss_sign', 'tmb_glavbuh_sign', 'tmb_stamp'):
if form.cleaned_data[img_url]:
chg_file = open(settings.MEDIA_ROOT + '/cache/imgs/' + \
form.cleaned_data[img_url])
item_attr = img_url[4:]
getattr(item, item_attr).save('%s.%s' % \
(item_attr, form.cleaned_data[img_url].split('.')[-1]),
File(chg_file))
chg_file.close()
elif form.cleaned_data:
pass
item.save()
return redirect(success_url)
else:
form = form_class(instance=profile)
dictionary = {
'form': form,
'profile': profile,
'accounts': accounts,
'bank_account_form': bank_account_form,
'dadata_api_key': dadata_api_key
}
return render(request, template_name, dictionary)
def tmp_upload(request):
SIZES = {'id_boss_sign': (170, 65), 'id_glavbuh_sign': (170, 65), 'id_stamp': (170, 170), 'id_logo': (170, 170)}
elm_id = request.REQUEST['elm_id']
file_ = request.FILES.values()[0]
if not file_.content_type.startswith('image'):
return {'res': 'bad'}
if not os.path.exists(settings.MEDIA_ROOT +
'/cache/imgs/'):
os.makedirs(settings.MEDIA_ROOT +
'/cache/imgs/')
tmp_dir = tempfile.mkdtemp('img_tmp', settings.MEDIA_ROOT +
'/cache/imgs/')
os.chmod(tmp_dir, 0755)
open(tmp_dir + '/' + file_.name, "w").write(file_.read())
tmp_url_partial = os.path.basename(tmp_dir) + '/' + file_.name
thumbnailer = get_thumbnailer(tmp_dir + '/' + file_.name)
# im = get_thumbnail(tmp_dir + '/' + file_.name, SIZES[elm_id], quality=75)
thumbnail_options = {'size': SIZES[elm_id]}
im = thumbnailer.get_thumbnail(thumbnail_options) # Возвращает в url полный путь, поэтому придётся резать
im_url = os.path.join(settings.MEDIA_URL, os.path.relpath(im.url, settings.MEDIA_ROOT))
data = {'res': 'ok', 'pic': im_url, 'full_pic': tmp_url_partial}
data.update(request.REQUEST)
return HttpResponse(json.dumps(data), mimetype='application/json')
def del_tmp_photo(request, article_pk):
# wedding, wedding_guests = get_wedding_n_guests(request)
try:
pass
# article = WedPage.objects.get(pk=article_pk)
# article.main_photo.delete()
except:
return {'res': 'bad'}
return {'res': 'ok'}
@login_required
def _profile_get_pdf(request, profile=None, account=None, filters=None):
"""Создать профиль пользователя в PDF и вернуть как строку."""
template_name = 'customer/profile/as_pdf.html'
dictionary = {
'profile': profile,
'account': account,
'filters': filters,
}
return render_pdf_to_string(request, template_name, dictionary)
@login_required
def profile_as_pdf(request, profile=None, account=None, filters=None):
"""Вывести профиль пользователя в формате PDF в HttpResponse."""
pdf = _profile_get_pdf(request, profile, account, filters)
return pdf_to_response(pdf, PDF_PROFILE_NAME)
def _send_profile_email(subject, to, body, pdf_content):
"""Отправка письма."""
template_name = 'customer/profile/profile_email.txt'
dict_context = {'body': body, 'support_email': SUPPORT_EMAIL}
email_body = render_to_string(template_name, dict_context)
email = EmailMessage(
subject=subject,
to=(to,),
body=email_body,
attachments = [(smart_str(Header(PDF_PROFILE_NAME, 'cp1251')), pdf_content, 'application/pdf'),]
)
return email.send()
@login_required
@login_required
@csrf_protect
def profile_email(request):
"""Форма отправки профиля пользователя на email аттачем в PDF."""
raise_if_no_profile(request)
template_name = 'customer/profile/email.html'
success_url = 'customer_profile_view'
form_class = forms.EmailProfileForm
if request.method == 'POST' and '_cancel' in request.POST:
return redirect('customer_profile_view')
profile = request.user.profile
filters = models.UserProfileFilters.objects.get_or_create_filters(user=request.user)
if request.method == 'POST':
form = form_class(data=request.POST)
if form.is_valid():
_send_profile_email(
subject = u'Реквизиты %s' % profile.get_company_name(),
to = form.cleaned_data['to'],
body = form.cleaned_data['body'],
pdf_content = _profile_get_pdf(request, profile, filters.bank_account, filters)
)
return redirect(success_url)
else:
form = form_class()
return render(request, template_name, {'form': form, 'profile': profile,})
#@login_required
#@csrf_protect
#def profile_settings(request):
# """Редактировать настройки пользователя."""
# template_name='customer/profile/settings.html'
#
# profile = get_object_or_404(models.UserProfile, user=request.user)
# form_class = forms.UserProfileSettingsForm #TODO remove this view
#
# # пути к уже загруженным подписям/штампу
# curr_files = {'boss_sign': None, 'glavbuh_sign': None, 'stamp': None,}
# if profile.boss_sign:
# curr_files['boss_sign'] = profile.boss_sign.path
# if profile.glavbuh_sign:
# curr_files['glavbuh_sign'] = profile.glavbuh_sign.path
# if profile.stamp:
# curr_files['stamp'] = profile.stamp.path
#
# if request.method == "POST" and '_cancel' not in request.POST:
# post = request.POST
# files = request.FILES
# form = form_class(user=request.user, data=post, files=files, instance=profile)
#
# if form.is_valid():
# def delete_file(path):
# """Удалить файл. Если ошибка - сообщить в консоль."""
# try:
# os.remove(path)
# except:
# print "Can't delete file:", path
# # --- удалить старые файлы
# for field, path in curr_files.iteritems():
# if not path:
# continue
# # если стоит галочка 'очистить'
# if '%s-clear' % field in post:
# delete_file(path)
# continue
# # если загружен новый файл
# if field in files:
# delete_file(path)
# continue
# # --- изменить пароль
# if 'new_password1' in post:
# request.user.set_password(post.get('new_password1'))
# request.user.save()
# messages.add_message(request, messages.INFO, u'Пароль успешно изменен.')
#
# form.save()
# return redirect('customer_profile_settings')
# else:
# form = form_class(user=request.user, instance=profile)
#
# return render(request, template_name, {'profile': profile, 'form': form,})

@ -1 +0,0 @@
from .render_to_xls import render_xls_to_string

@ -1,147 +0,0 @@
# -*- coding: utf-8 -*-
from decimal import Decimal
BOOL_CHOICES = (
(True, u'Да'),
(False, u'Нет'),
)
# виды НДС
NDS_TYPE_NO = 1
NDS_TYPE_IN = 2
NDS_TYPE_OUT = 3
NDS_TYPE_CHOICES = (
(NDS_TYPE_NO, u'Не учитывать'),
(NDS_TYPE_IN, u'В сумме'),
(NDS_TYPE_OUT, u'Сверх суммы'),
)
# ставка НДС
NDS_VALUE_0 = 0
NDS_VALUE_10 = 10
NDS_VALUE_18 = 18
NDS_VALUE_CHOICES = (
(NDS_VALUE_0, u'Без НДС'),
(NDS_VALUE_10, u'10%'),
(NDS_VALUE_18, u'18%'),
)
# ставка НДС - число в формате Decimal (для расчетов)
NDS_VALUE_NUMERIC = {
NDS_VALUE_0: Decimal('0.00'),
NDS_VALUE_10: Decimal('10.00'),
NDS_VALUE_18: Decimal('18.00'),
}
# ----------------------------------------------------------- для счетов-фактур
# валюты
CURR_RUB = 1
CURR_USD = 2
CURR_EUR = 3
CURR_OTHER = 4
CURRENCY_CHOICES = (
(CURR_RUB, u'Руб.'),
(CURR_USD, u'USD'),
(CURR_EUR, u'EUR'),
(CURR_OTHER, u'Другое'),
)
CURRENCY_CHOICES_DICT = dict(CURRENCY_CHOICES)
# варианты для поля грузоотправитель
CONSIGNOR_TYPE_SELF = 1
CONSIGNOR_TYPE_OTHER = 2
CONSIGNOR_TYPE_NO = 3
CONSIGNOR_CHOICES = (
(CONSIGNOR_TYPE_SELF, u'Подставить мои данные'), # из профиля через поле user
(CONSIGNOR_TYPE_OTHER, u'Стороннее лицо'), # из справочника контрагенты
(CONSIGNOR_TYPE_NO, u'Не указывать'),
)
# варианты для поля грузополучатель
RECEIVER_TYPE_BUYER = 1
RECEIVER_TYPE_OTHER = 2
RECEIVER_TYPE_NO = 3
RECEIVER_CHOICES = (
(RECEIVER_TYPE_BUYER, u'То же лицо'), # что и покупатель
(RECEIVER_TYPE_OTHER, u'Стороннее лицо'), # из справочника контрагенты
(RECEIVER_TYPE_NO, u'Не указывать'),
)
# ----------------------------------------------------- для платежных поручений
# тип платежного поручения
PLATEJ_TYPE_COMMERCE = 1
PLATEJ_TYPE_TAX = 2
PLATEJ_TYPE_CHOICES = (
(PLATEJ_TYPE_COMMERCE, u'Коммерческое'),
(PLATEJ_TYPE_TAX, u'Налоговое'),
)
# вид платежа
PAYMENT_TYPE_CHOICES = (
(1, u'Не указывать'),
(2, u'Срочно'),
(3, u'Электронно'),
(4, u'Почтой'),
(5, u'Телеграфом'),
)
# статус составителя
TAX_STATUS_CHOICES = (
(u'01', u'01 - налогоплательщик (плательщик сборов) - юридическое лицо'),
(u'02', u'02 - налоговый агент'),
(u'03', u'03 - сборщик налогов и сборов'),
(u'04', u'04 - налоговый орган'),
(u'05', u'05 - служба судебных приставов'),
(u'06', u'06 - участник внешнеэкономической деятельности'),
(u'07', u'07 - таможенный орган'),
(u'08', u'08 - плательщик иных обязательных платежей'),
(u'09', u'09 - налогоплательщик (плательщик сборов) - ИП'),
(u'10', u'10 - налогоплательщик (плательщик сборов) - частный нотариус'),
(u'11', u'11 - налогоплательщик (плательщик сборов) - адвокат'),
(u'12', u'12 - налогоплательщик (плательщик сборов) - глава КФХ'),
(u'13', u'13 - налогоплательщик (плательщик сборов) - иное физическое лицо'),
(u'14', u'14 - налогоплательщик, производящий выплаты физическим лицам'),
(u'15', u'15 - кредитная организация'),
)
# основание налогового платежа
TAX_BASE = (
(u'ТП', u'ТП - платежи текущего года'),
(u'ЗД', u'ЗД - добровольное погашение задолженности по истекшим налоговым периода'),
(u'БФ', u'БФ - текущие платежи физических лиц - клиентов банка (владельцев счета)'),
(u'ТР', u'ТР - погашение задолженности по требованию об уплате налогов (сборов) от налогового органа'),
(u'РС', u'РС - погашение рассроченной задолженности'),
(u'ОТ', u'ОТ - погашение отсроченной задолженности'),
(u'РТ', u'РТ - погашение реструктурируемой задолженности'),
(u'ВУ', u'ВУ - погашение отсроченной задолженности в связи с введением внешнего управления'),
(u'ПР', u'ПР - погашение задолженности, приостановленной к взысканию'),
(u'АП', u'АП - погашение задолженности по акту проверки'),
(u'АР', u'АР - погашение задолженности по исполнительному документу'),
( u'0', u'0 - Конкретное значение указать невозможно'),
)
# тип налогового платежа
TAX_TYPE = (
(u'НС', u'НС - уплата налога или сбора'),
(u'ПЛ', u'ПЛ - уплата платежа'),
(u'ГП', u'ГП - уплата пошлины'),
(u'ВЗ', u'ВЗ - уплата взноса'),
(u'АВ', u'АВ - уплата аванса или предоплата (в том числе декадные платежи)'),
(u'ПЕ', u'ПЕ - уплата пени'),
(u'ПЦ', u'ПЦ - уплата процентов'),
(u'СА', u'СА - налоговые санкции, установленные Налоговым кодексом РФ'),
(u'АШ', u'АШ - административные штрафы'),
(u'ИШ', u'ИШ - иные штрафы, установленные соответствующими нормативными актами'),
( u'0', u'0 - Конкретное значение указать невозможно'),
)

@ -1,201 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
import django_filters
from project.customer.models import Client
from .models import Invoice
from . import consts
class CustomDateRangeFilter(django_filters.DateRangeFilter):
def __init__(self, *args, **kwargs):
try:
options = kwargs.pop('options')
self.options = options
except KeyError:
pass
kwargs['choices'] = [(key, value[0]) for key, value in self.options.iteritems()]
super(CustomDateRangeFilter, self).__init__(*args, **kwargs)
class CustomChoiceFilter(django_filters.ChoiceFilter):
def __init__(self, *args, **kwargs):
self.options = kwargs.pop('options') # обязательный параметр!
kwargs['choices'] = [(key, value[0]) for key, value in self.options.iteritems()]
super(CustomChoiceFilter, self).__init__(*args, **kwargs)
def filter(self, qs, value):
try:
value = int(value)
except (ValueError, TypeError):
value = ''
return self.options[value][1](qs, self.name)
def _quarter_dates(q, year):
"""Возвращает даты начала/окончания переданного квартала.
Также нужно передать год.
"""
if q == 1:
return datetime.date(year, 1, 1), datetime.date(year, 3, 31)
elif q == 2:
return datetime.date(year, 4, 1), datetime.date(year, 6, 30)
elif q == 3:
return datetime.date(year, 7, 1), datetime.date(year, 9, 30)
elif q ==4:
return datetime.date(year, 10, 1), datetime.date(year, 12, 31)
return None, None
def current_quarter(today):
"""Возвращает даты начала/окончания текущего квартала."""
q = (today.month-1)//3+1
return _quarter_dates(q, today.year)
def last_quarter(today):
"""Возвращает даты начала/окончания прошлого квартала."""
q = (today.month-1)//3+1
q -= 1
year = today.year
if q < 1: # прошлый год
q = 4
year -= 1
return _quarter_dates(q, year)
today = datetime.datetime.now()
current_quarter_start, current_quarter_end = current_quarter(today)
last_quarter_start, last_quarter_end = last_quarter(today)
# --- варианты фильтрации для разных полей
doc_date_choices = {
'': (u'Всё время', lambda qs, name: qs.all()),
1: (u'Этот месяц', lambda qs, name: qs.filter(**{
'%s__year' % name: datetime.datetime.now().year,
'%s__month' % name: datetime.datetime.now().month
})),
2: (u'Прошлый месяц', lambda qs, name: qs.filter(**{
'%s__year' % name: datetime.datetime.now().year,
'%s__month' % name: datetime.datetime.now().month-1
})),
3: (u'Этот квартал', lambda qs, name: qs.filter(**{
'%s__gte' % name: current_quarter_start,
'%s__lte' % name: current_quarter_end,
})),
4: (u'Прошлый квартал', lambda qs, name: qs.filter(**{
'%s__gte' % name: last_quarter_start,
'%s__lte' % name: last_quarter_end,
})),
5: (u'Этот год', lambda qs, name: qs.filter(**{
'%s__year' % name: datetime.datetime.now().year,
})),
6: (u'Прошлый год', lambda qs, name: qs.filter(**{
'%s__year' % name: datetime.datetime.now().year-1,
})),
}
closed_status_choices = (
('', u'Все счета'),
(1, u'Закрытые актом выполненных работ'),
(0, u'Не закрытые актом выполненных работ'),
)
paid_status_choices = (
('', u'Все счета'),
(Invoice.PAID, u'Оплаченные'),
(Invoice.PARTLY_PAID, u'Частично оплаченные'),
(Invoice.UNPAID, u'Неоплаченные'),
)
signed_status_choices = (
('', u'Все документы'),
('1', u'Подписанные'),
('0', u'Не подписанные'),
)
total_saldo_choices = {
'': (u'Любое', lambda qs, name: qs.all()),
1: (u'Положительное', lambda qs, name: qs.filter(**{
'%s__gt' % name: 0,
})),
2: (u'Отрицательное', lambda qs, name: qs.filter(**{
'%s__lt' % name: 0,
})),
}
platej_type_choices = (
('', u'Все плат. поручения'),
(consts.PLATEJ_TYPE_COMMERCE, u'Коммерческие'),
(consts.PLATEJ_TYPE_TAX, u'Налоговые'),
)
class BaseDocsFilterSet(django_filters.FilterSet):
"""Базовый класс всех фильтров документов.
Работает и без Meta.
"""
def __init__(self, request, *args, **kwargs):
super(BaseDocsFilterSet, self).__init__(*args, **kwargs)
self.request = request
if 'client' in self.filters:
self.filters['client'].extra['queryset'] = Client.objects.get_all(self.request.user.profile)
if 'invoice' in self.filters:
self.filters['invoice'].extra['queryset'] = Invoice.objects.get_all(self.request.user.profile)
# сбросить у полей формы атрибут help_text
for field in self.form.fields.itervalues():
field.help_text = None
class InvoiceFilterSet(BaseDocsFilterSet):
paid_status = django_filters.ChoiceFilter(label=u'По оплате', choices=paid_status_choices, widget=django_filters.widgets.LinkWidget)
closed_status = django_filters.ChoiceFilter(label=u'По закрывающим документам', choices=closed_status_choices, widget=django_filters.widgets.LinkWidget)
client = django_filters.ModelChoiceFilter(label=u'По контрагенту', queryset=None, empty_label=u'все контрагенты')
doc_date = CustomDateRangeFilter(label=u'По времени создания', options=doc_date_choices, widget=django_filters.widgets.LinkWidget)
class AktRabotFilterSet(BaseDocsFilterSet):
signed_status = django_filters.ChoiceFilter(label=u'По приёмке', choices=signed_status_choices, widget=django_filters.widgets.LinkWidget)
client = django_filters.ModelChoiceFilter(label=u'По контрагенту', queryset=None, empty_label=u'все контрагенты')
invoice = django_filters.ModelChoiceFilter(label=u'По счёту', queryset=None, empty_label=u'все счета')
doc_date = CustomDateRangeFilter(label=u'По времени создания', options=doc_date_choices, widget=django_filters.widgets.LinkWidget)
class NakladnFilterSet(BaseDocsFilterSet):
signed_status = django_filters.ChoiceFilter(label=u'По приёмке', choices=signed_status_choices, widget=django_filters.widgets.LinkWidget)
client = django_filters.ModelChoiceFilter(label=u'По контрагенту', queryset=None, empty_label=u'все контрагенты')
invoice = django_filters.ModelChoiceFilter(label=u'По счёту', queryset=None, empty_label=u'все счета')
doc_date = CustomDateRangeFilter(label=u'По времени создания', options=doc_date_choices, widget=django_filters.widgets.LinkWidget)
class FakturaFilterSet(BaseDocsFilterSet):
signed_status = django_filters.ChoiceFilter(label=u'По приёмке', choices=signed_status_choices, widget=django_filters.widgets.LinkWidget)
client = django_filters.ModelChoiceFilter(label=u'По контрагенту', queryset=None, empty_label=u'все контрагенты')
invoice = django_filters.ModelChoiceFilter(label=u'По счёту', queryset=None, empty_label=u'все счета')
doc_date = CustomDateRangeFilter(label=u'По времени создания', options=doc_date_choices, widget=django_filters.widgets.LinkWidget)
class AktSverkiFilterSet(BaseDocsFilterSet):
signed_status = django_filters.ChoiceFilter(label=u'По приёмке', choices=signed_status_choices, widget=django_filters.widgets.LinkWidget)
client = django_filters.ModelChoiceFilter(label=u'По контрагенту', queryset=None, empty_label=u'все контрагенты')
total_saldo = CustomChoiceFilter(label=u'По сальдо', options=total_saldo_choices, widget=django_filters.widgets.LinkWidget)
doc_date = CustomDateRangeFilter(label=u'По времени создания', options=doc_date_choices, widget=django_filters.widgets.LinkWidget)
class DoverFilterSet(BaseDocsFilterSet):
client = django_filters.ModelChoiceFilter(label=u'По контрагенту', queryset=None, empty_label=u'все контрагенты')
doc_date = CustomDateRangeFilter(label=u'По времени создания', options=doc_date_choices, widget=django_filters.widgets.LinkWidget)
class PlatejkaFilterSet(BaseDocsFilterSet):
platej_type = django_filters.ChoiceFilter(label=u'По типу', choices=platej_type_choices, widget=django_filters.widgets.LinkWidget)
client = django_filters.ModelChoiceFilter(label=u'По контрагенту', queryset=None, empty_label=u'все контрагенты')
doc_date = CustomDateRangeFilter(label=u'По времени создания', options=doc_date_choices, widget=django_filters.widgets.LinkWidget)

@ -1,9 +0,0 @@
from .email import EmailForm
from .invoice import InvoiceForm, InvoiceAdminForm, InvoiceItemForm, InvoiceItemAdminForm, InvoicesListForm
from .aktrabot import AktRabotForm, AktRabotAdminForm, AktRabotItemForm, AktRabotItemAdminForm
from .aktsverki import AktSverkiForm, AktSverkiAdminForm, AktSverkiItemForm, AktSverkiItemAdminForm
from .dover import DoverForm, DoverAdminForm, DoverItemForm, DoverItemAdminForm
from .platejka import PlatejkaForm, PlatejkaAdminForm
from .nakladn import NakladnForm, NakladnAdminForm, NakladnItemForm, NakladnItemAdminForm
from .faktura import FakturaForm, FakturaAdminForm, FakturaItemForm, FakturaItemAdminForm

@ -1,21 +0,0 @@
# -*- coding: utf-8 -*-
from django import forms
DOC_FORMATS = (
(u'pdf', u'PDF'),
(u'xls', u'Excel'),
)
class EmailForm(forms.Form):
"""Форма отправки документа по email."""
to = forms.EmailField(label=u'E-mail получателя')
body = forms.CharField(label=u'Текст сообщения', max_length=1000, required=False,
widget=forms.Textarea(attrs={'cols': 80, 'rows': 3}))
doc_format = forms.ChoiceField(label=u'Отправить как', choices=DOC_FORMATS, initial=DOC_FORMATS[0][0],
widget=forms.RadioSelect())
insert_sign = forms.BooleanField(label=u'Вставить печать и подпись', initial=False,
required=False)
save_client_email = forms.BooleanField(label=u'Сохранить этот e-mail в анкете контрагента', initial=False,
required=False)

@ -1,673 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'Country'
db.create_table(u'docs_country', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('code', self.gf('django.db.models.fields.CharField')(max_length=200)),
('name', self.gf('django.db.models.fields.CharField')(max_length=10)),
))
db.send_create_signal('docs', ['Country'])
# Adding model 'Currency'
db.create_table(u'docs_currency', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('code', self.gf('django.db.models.fields.CharField')(max_length=200)),
('name', self.gf('django.db.models.fields.CharField')(max_length=10)),
))
db.send_create_signal('docs', ['Currency'])
# Adding model 'Measure'
db.create_table(u'docs_measure', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('code', self.gf('django.db.models.fields.CharField')(max_length=200)),
('name', self.gf('django.db.models.fields.CharField')(max_length=10)),
))
db.send_create_signal('docs', ['Measure'])
# Adding model 'Invoice'
db.create_table(u'docs_invoice', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['myauth.DokUser'])),
('company', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['customer.UserProfile'], null=True)),
('doc_num', self.gf('django.db.models.fields.PositiveIntegerField')()),
('doc_date', self.gf('django.db.models.fields.DateField')()),
('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.Client'])),
('nds_value', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0)),
('bank_account', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.BankAccount'])),
('doc_text', self.gf('django.db.models.fields.TextField')(default='', max_length=1000, blank=True)),
('paid_status', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)),
('closed_status', self.gf('django.db.models.fields.BooleanField')(default=False)),
))
db.send_create_signal('docs', ['Invoice'])
# Adding model 'InvoiceItem'
db.create_table(u'docs_invoiceitem', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('qty', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=3)),
('units', self.gf('django.db.models.fields.CharField')(max_length=20)),
('price', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('total_price', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='invoice_items', to=orm['docs.Invoice'])),
))
db.send_create_signal('docs', ['InvoiceItem'])
# Adding model 'AktRabot'
db.create_table(u'docs_aktrabot', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['myauth.DokUser'])),
('company', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['customer.UserProfile'], null=True)),
('doc_num', self.gf('django.db.models.fields.PositiveIntegerField')()),
('doc_date', self.gf('django.db.models.fields.DateField')()),
('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.Client'])),
('nds_value', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0)),
('bank_account', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.BankAccount'])),
('doc_text', self.gf('django.db.models.fields.TextField')(default='', max_length=1000, blank=True)),
('signed_status', self.gf('django.db.models.fields.BooleanField')(default=False)),
('invoice', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', on_delete=models.SET_NULL, default=None, to=orm['docs.Invoice'], blank=True, null=True)),
))
db.send_create_signal('docs', ['AktRabot'])
# Adding model 'AktRabotItem'
db.create_table(u'docs_aktrabotitem', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('qty', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=3)),
('units', self.gf('django.db.models.fields.CharField')(max_length=20)),
('price', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('total_price', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='aktrabot_items', to=orm['docs.AktRabot'])),
))
db.send_create_signal('docs', ['AktRabotItem'])
# Adding model 'AktSverki'
db.create_table(u'docs_aktsverki', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['myauth.DokUser'])),
('company', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['customer.UserProfile'], null=True)),
('doc_num', self.gf('django.db.models.fields.PositiveIntegerField')()),
('doc_date', self.gf('django.db.models.fields.DateField')()),
('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.Client'])),
('signed_status', self.gf('django.db.models.fields.BooleanField')(default=False)),
('doc_mesto', self.gf('django.db.models.fields.CharField')(max_length=256)),
('start_date', self.gf('django.db.models.fields.DateField')()),
('end_date', self.gf('django.db.models.fields.DateField')()),
('saldo_debit', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2, blank=True)),
('saldo_credit', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2, blank=True)),
('total_debit', self.gf('django.db.models.fields.DecimalField')(default='0.00', max_digits=10, decimal_places=2, blank=True)),
('total_credit', self.gf('django.db.models.fields.DecimalField')(default='0.00', max_digits=10, decimal_places=2, blank=True)),
('total_saldo', self.gf('django.db.models.fields.DecimalField')(default='0.00', max_digits=10, decimal_places=2, blank=True)),
))
db.send_create_signal('docs', ['AktSverki'])
# Adding model 'AktSverkiItem'
db.create_table(u'docs_aktsverkiitem', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='aktsverki_items', to=orm['docs.AktSverki'])),
('name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('debit', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2, blank=True)),
('credit', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2, blank=True)),
))
db.send_create_signal('docs', ['AktSverkiItem'])
# Adding model 'Dover'
db.create_table(u'docs_dover', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['myauth.DokUser'])),
('company', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['customer.UserProfile'], null=True)),
('doc_num', self.gf('django.db.models.fields.PositiveIntegerField')()),
('doc_date', self.gf('django.db.models.fields.DateField')()),
('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.Client'])),
('doc_expire_date', self.gf('django.db.models.fields.DateField')()),
('dover_doc', self.gf('django.db.models.fields.CharField')(max_length=256)),
('dover_doc_date', self.gf('django.db.models.fields.DateField')()),
('dover_name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('dover_passport_ser', self.gf('django.db.models.fields.CharField')(max_length=10)),
('dover_passport_num', self.gf('django.db.models.fields.CharField')(max_length=10)),
('dover_passport_org', self.gf('django.db.models.fields.CharField')(max_length=256)),
('dover_passport_date', self.gf('django.db.models.fields.DateField')()),
))
db.send_create_signal('docs', ['Dover'])
# Adding model 'DoverItem'
db.create_table(u'docs_doveritem', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='dover_items', to=orm['docs.Dover'])),
('name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('qty', self.gf('django.db.models.fields.PositiveIntegerField')()),
('units', self.gf('django.db.models.fields.CharField')(max_length=20)),
))
db.send_create_signal('docs', ['DoverItem'])
# Adding model 'Platejka'
db.create_table(u'docs_platejka', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['myauth.DokUser'])),
('company', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['customer.UserProfile'], null=True)),
('doc_num', self.gf('django.db.models.fields.PositiveIntegerField')()),
('doc_date', self.gf('django.db.models.fields.DateField')()),
('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.Client'])),
('platej_type', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)),
('bank_account', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.BankAccount'])),
('doc_total', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('payment_type', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)),
('payment_order', self.gf('django.db.models.fields.CharField')(max_length=10)),
('doc_info', self.gf('django.db.models.fields.TextField')(max_length=1000)),
('nds_value', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0)),
('tax_status', self.gf('django.db.models.fields.CharField')(default=u'01', max_length=10)),
('tax_base', self.gf('django.db.models.fields.CharField')(default=u'\u0422\u041f', max_length=10)),
('tax_type', self.gf('django.db.models.fields.CharField')(default=u'\u041d\u0421', max_length=10)),
('tax_num', self.gf('django.db.models.fields.CharField')(default='', max_length=50, blank=True)),
('tax_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('tax_bk', self.gf('django.db.models.fields.CharField')(max_length=256)),
('tax_okato', self.gf('django.db.models.fields.CharField')(max_length=256)),
('tax_period', self.gf('django.db.models.fields.CharField')(max_length=256)),
))
db.send_create_signal('docs', ['Platejka'])
# Adding model 'Nakladn'
db.create_table(u'docs_nakladn', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['myauth.DokUser'])),
('company', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['customer.UserProfile'], null=True)),
('doc_num', self.gf('django.db.models.fields.PositiveIntegerField')()),
('doc_date', self.gf('django.db.models.fields.DateField')()),
('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.Client'])),
('nds_value', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0)),
('bank_account', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.BankAccount'])),
('doc_text', self.gf('django.db.models.fields.TextField')(default='', max_length=1000, blank=True)),
('signed_status', self.gf('django.db.models.fields.BooleanField')(default=False)),
('invoice', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', on_delete=models.SET_NULL, default=None, to=orm['docs.Invoice'], blank=True, null=True)),
('doc_reason', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
))
db.send_create_signal('docs', ['Nakladn'])
# Adding model 'NakladnItem'
db.create_table(u'docs_nakladnitem', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('qty', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=3)),
('units', self.gf('django.db.models.fields.CharField')(max_length=20)),
('price', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('total_price', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='nakladn_items', to=orm['docs.Nakladn'])),
))
db.send_create_signal('docs', ['NakladnItem'])
# Adding model 'Faktura'
db.create_table(u'docs_faktura', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['myauth.DokUser'])),
('company', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['customer.UserProfile'], null=True)),
('doc_num', self.gf('django.db.models.fields.PositiveIntegerField')()),
('doc_date', self.gf('django.db.models.fields.DateField')()),
('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.Client'])),
('nds_value', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0)),
('bank_account', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['customer.BankAccount'])),
('doc_text', self.gf('django.db.models.fields.TextField')(default='', max_length=1000, blank=True)),
('signed_status', self.gf('django.db.models.fields.BooleanField')(default=False)),
('invoice', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', on_delete=models.SET_NULL, default=None, to=orm['docs.Invoice'], blank=True, null=True)),
('doc_reason', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('fixes', self.gf('django.db.models.fields.BooleanField')(default=False)),
('avance', self.gf('django.db.models.fields.BooleanField')(default=False)),
('currency', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['docs.Currency'], null=True)),
('user_is_sender', self.gf('django.db.models.fields.BooleanField')(default=False)),
('sender', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='sender_fakturas', null=True, to=orm['customer.Client'])),
('receiver', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='receiver_fakturas', null=True, to=orm['customer.Client'])),
('plat_doc_num', self.gf('django.db.models.fields.CharField')(default='', max_length=30, blank=True)),
('plat_doc_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('fix_doc_num', self.gf('django.db.models.fields.PositiveIntegerField')(max_length=30, null=True, blank=True)),
('fix_doc_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
))
db.send_create_signal('docs', ['Faktura'])
# Adding model 'FakturaItem'
db.create_table(u'docs_fakturaitem', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('updated_at', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('qty', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=3)),
('units', self.gf('django.db.models.fields.CharField')(max_length=20)),
('price', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('total_price', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=2)),
('units_kod', self.gf('django.db.models.fields.CharField')(max_length=10)),
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='faktura_items', to=orm['docs.Faktura'])),
('country_code', self.gf('django.db.models.fields.CharField')(max_length=10)),
('country_name', self.gf('django.db.models.fields.CharField')(max_length=256)),
('gtd', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
('ntd', self.gf('django.db.models.fields.CharField')(default='', max_length=256, blank=True)),
))
db.send_create_signal('docs', ['FakturaItem'])
def backwards(self, orm):
# Deleting model 'Country'
db.delete_table(u'docs_country')
# Deleting model 'Currency'
db.delete_table(u'docs_currency')
# Deleting model 'Measure'
db.delete_table(u'docs_measure')
# Deleting model 'Invoice'
db.delete_table(u'docs_invoice')
# Deleting model 'InvoiceItem'
db.delete_table(u'docs_invoiceitem')
# Deleting model 'AktRabot'
db.delete_table(u'docs_aktrabot')
# Deleting model 'AktRabotItem'
db.delete_table(u'docs_aktrabotitem')
# Deleting model 'AktSverki'
db.delete_table(u'docs_aktsverki')
# Deleting model 'AktSverkiItem'
db.delete_table(u'docs_aktsverkiitem')
# Deleting model 'Dover'
db.delete_table(u'docs_dover')
# Deleting model 'DoverItem'
db.delete_table(u'docs_doveritem')
# Deleting model 'Platejka'
db.delete_table(u'docs_platejka')
# Deleting model 'Nakladn'
db.delete_table(u'docs_nakladn')
# Deleting model 'NakladnItem'
db.delete_table(u'docs_nakladnitem')
# Deleting model 'Faktura'
db.delete_table(u'docs_faktura')
# Deleting model 'FakturaItem'
db.delete_table(u'docs_fakturaitem')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
'docs.aktrabot': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktRabot'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktrabotitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktRabotItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktrabot_items'", 'to': "orm['docs.AktRabot']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.aktsverki': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktSverki'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_mesto': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'end_date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'saldo_credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'saldo_debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'start_date': ('django.db.models.fields.DateField', [], {}),
'total_credit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_debit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_saldo': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktsverkiitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktSverkiItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktsverki_items'", 'to': "orm['docs.AktSverki']"}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.country': {
'Meta': {'object_name': 'Country'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '10'})
},
'docs.currency': {
'Meta': {'object_name': 'Currency'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '10'})
},
'docs.dover': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Dover'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_expire_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'dover_doc': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_doc_date': ('django.db.models.fields.DateField', [], {}),
'dover_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_date': ('django.db.models.fields.DateField', [], {}),
'dover_passport_num': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'dover_passport_org': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_ser': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.doveritem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'DoverItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dover_items'", 'to': "orm['docs.Dover']"}),
'qty': ('django.db.models.fields.PositiveIntegerField', [], {}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.faktura': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Faktura'},
'avance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['docs.Currency']", 'null': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
'fix_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'fix_doc_num': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
'fixes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'plat_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'plat_doc_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'receiver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'receiver_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sender_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"}),
'user_is_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'docs.fakturaitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'FakturaItem'},
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'country_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'gtd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'ntd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faktura_items'", 'to': "orm['docs.Faktura']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.invoice': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Invoice'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'closed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'paid_status': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.invoiceitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'InvoiceItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invoice_items'", 'to': "orm['docs.Invoice']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.measure': {
'Meta': {'object_name': 'Measure'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '10'})
},
'docs.nakladn': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Nakladn'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.nakladnitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'NakladnItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nakladn_items'", 'to': "orm['docs.Nakladn']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.platejka': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Platejka'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_info': ('django.db.models.fields.TextField', [], {'max_length': '1000'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_total': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'payment_order': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'payment_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'platej_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'tax_base': ('django.db.models.fields.CharField', [], {'default': "u'\\u0422\\u041f'", 'max_length': '10'}),
'tax_bk': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'tax_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'tax_okato': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_period': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_status': ('django.db.models.fields.CharField', [], {'default': "u'01'", 'max_length': '10'}),
'tax_type': ('django.db.models.fields.CharField', [], {'default': "u'\\u041d\\u0421'", 'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
u'myauth.dokuser': {
'Meta': {'object_name': 'DokUser'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '254'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'null': 'True', 'to': u"orm['customer.UserProfile']"}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30', 'blank': 'True'})
}
}
complete_apps = ['docs']

@ -1,424 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'Measure.full_name'
db.add_column(u'docs_measure', 'full_name',
self.gf('django.db.models.fields.CharField')(default='', max_length=255),
keep_default=False)
# Changing field 'Measure.code'
db.alter_column(u'docs_measure', 'code', self.gf('django.db.models.fields.CharField')(max_length=20))
# Changing field 'Measure.name'
db.alter_column(u'docs_measure', 'name', self.gf('django.db.models.fields.CharField')(max_length=30))
# Adding field 'Country.full_name'
db.add_column(u'docs_country', 'full_name',
self.gf('django.db.models.fields.CharField')(default='', max_length=255),
keep_default=False)
# Changing field 'Country.code'
db.alter_column(u'docs_country', 'code', self.gf('django.db.models.fields.CharField')(max_length=20))
# Changing field 'Country.name'
db.alter_column(u'docs_country', 'name', self.gf('django.db.models.fields.CharField')(max_length=60))
# Adding field 'Currency.abc_code'
db.add_column(u'docs_currency', 'abc_code',
self.gf('django.db.models.fields.CharField')(default='', max_length=10),
keep_default=False)
# Changing field 'Currency.code'
db.alter_column(u'docs_currency', 'code', self.gf('django.db.models.fields.CharField')(max_length=20))
# Changing field 'Currency.name'
db.alter_column(u'docs_currency', 'name', self.gf('django.db.models.fields.CharField')(max_length=60))
def backwards(self, orm):
# Deleting field 'Measure.full_name'
db.delete_column(u'docs_measure', 'full_name')
# Changing field 'Measure.code'
db.alter_column(u'docs_measure', 'code', self.gf('django.db.models.fields.CharField')(max_length=200))
# Changing field 'Measure.name'
db.alter_column(u'docs_measure', 'name', self.gf('django.db.models.fields.CharField')(max_length=10))
# Deleting field 'Country.full_name'
db.delete_column(u'docs_country', 'full_name')
# Changing field 'Country.code'
db.alter_column(u'docs_country', 'code', self.gf('django.db.models.fields.CharField')(max_length=200))
# Changing field 'Country.name'
db.alter_column(u'docs_country', 'name', self.gf('django.db.models.fields.CharField')(max_length=10))
# Deleting field 'Currency.abc_code'
db.delete_column(u'docs_currency', 'abc_code')
# Changing field 'Currency.code'
db.alter_column(u'docs_currency', 'code', self.gf('django.db.models.fields.CharField')(max_length=200))
# Changing field 'Currency.name'
db.alter_column(u'docs_currency', 'name', self.gf('django.db.models.fields.CharField')(max_length=10))
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
'docs.aktrabot': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktRabot'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktrabotitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktRabotItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktrabot_items'", 'to': "orm['docs.AktRabot']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.aktsverki': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktSverki'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_mesto': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'end_date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'saldo_credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'saldo_debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'start_date': ('django.db.models.fields.DateField', [], {}),
'total_credit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_debit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_saldo': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktsverkiitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktSverkiItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktsverki_items'", 'to': "orm['docs.AktSverki']"}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.country': {
'Meta': {'object_name': 'Country'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'})
},
'docs.currency': {
'Meta': {'object_name': 'Currency'},
'abc_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'})
},
'docs.dover': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Dover'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_expire_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'dover_doc': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_doc_date': ('django.db.models.fields.DateField', [], {}),
'dover_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_date': ('django.db.models.fields.DateField', [], {}),
'dover_passport_num': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'dover_passport_org': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_ser': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.doveritem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'DoverItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dover_items'", 'to': "orm['docs.Dover']"}),
'qty': ('django.db.models.fields.PositiveIntegerField', [], {}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.faktura': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Faktura'},
'avance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['docs.Currency']", 'null': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
'fix_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'fix_doc_num': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
'fixes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'plat_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'plat_doc_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'receiver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'receiver_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sender_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"}),
'user_is_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'docs.fakturaitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'FakturaItem'},
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'country_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'gtd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'ntd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faktura_items'", 'to': "orm['docs.Faktura']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.invoice': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Invoice'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'closed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'paid_status': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.invoiceitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'InvoiceItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invoice_items'", 'to': "orm['docs.Invoice']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.measure': {
'Meta': {'object_name': 'Measure'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
},
'docs.nakladn': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Nakladn'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.nakladnitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'NakladnItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nakladn_items'", 'to': "orm['docs.Nakladn']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.platejka': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Platejka'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_info': ('django.db.models.fields.TextField', [], {'max_length': '1000'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_total': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'payment_order': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'payment_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'platej_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'tax_base': ('django.db.models.fields.CharField', [], {'default': "u'\\u0422\\u041f'", 'max_length': '10'}),
'tax_bk': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'tax_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'tax_okato': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_period': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_status': ('django.db.models.fields.CharField', [], {'default': "u'01'", 'max_length': '10'}),
'tax_type': ('django.db.models.fields.CharField', [], {'default': "u'\\u041d\\u0421'", 'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
u'myauth.dokuser': {
'Meta': {'object_name': 'DokUser'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '254'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'null': 'True', 'to': u"orm['customer.UserProfile']"}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30', 'blank': 'True'})
}
}
complete_apps = ['docs']

@ -1,373 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'Currency.order'
db.add_column(u'docs_currency', 'order',
self.gf('django.db.models.fields.PositiveIntegerField')(default=None, null=True, blank=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'Currency.order'
db.delete_column(u'docs_currency', 'order')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
'docs.aktrabot': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktRabot'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktrabotitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktRabotItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktrabot_items'", 'to': "orm['docs.AktRabot']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.aktsverki': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktSverki'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_mesto': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'end_date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'saldo_credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'saldo_debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'start_date': ('django.db.models.fields.DateField', [], {}),
'total_credit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_debit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_saldo': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktsverkiitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktSverkiItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktsverki_items'", 'to': "orm['docs.AktSverki']"}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.country': {
'Meta': {'ordering': "('code',)", 'object_name': 'Country'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'})
},
'docs.currency': {
'Meta': {'ordering': "('code',)", 'object_name': 'Currency'},
'abc_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.dover': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Dover'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_expire_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'dover_doc': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_doc_date': ('django.db.models.fields.DateField', [], {}),
'dover_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_date': ('django.db.models.fields.DateField', [], {}),
'dover_passport_num': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'dover_passport_org': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_ser': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.doveritem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'DoverItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dover_items'", 'to': "orm['docs.Dover']"}),
'qty': ('django.db.models.fields.PositiveIntegerField', [], {}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.faktura': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Faktura'},
'avance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['docs.Currency']", 'null': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
'fix_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'fix_doc_num': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
'fixes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'plat_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'plat_doc_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'receiver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'receiver_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sender_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"}),
'user_is_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'docs.fakturaitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'FakturaItem'},
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'country_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'gtd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'ntd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faktura_items'", 'to': "orm['docs.Faktura']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.invoice': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Invoice'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'closed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'paid_status': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.invoiceitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'InvoiceItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invoice_items'", 'to': "orm['docs.Invoice']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.measure': {
'Meta': {'ordering': "('code',)", 'object_name': 'Measure'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
},
'docs.nakladn': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Nakladn'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.nakladnitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'NakladnItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nakladn_items'", 'to': "orm['docs.Nakladn']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.platejka': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Platejka'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_info': ('django.db.models.fields.TextField', [], {'max_length': '1000'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_total': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'payment_order': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'payment_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'platej_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'tax_base': ('django.db.models.fields.CharField', [], {'default': "u'\\u0422\\u041f'", 'max_length': '10'}),
'tax_bk': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'tax_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'tax_okato': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_period': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_status': ('django.db.models.fields.CharField', [], {'default': "u'01'", 'max_length': '10'}),
'tax_type': ('django.db.models.fields.CharField', [], {'default': "u'\\u041d\\u0421'", 'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
u'myauth.dokuser': {
'Meta': {'object_name': 'DokUser'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '254'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'null': 'True', 'to': u"orm['customer.UserProfile']"}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30', 'blank': 'True'})
}
}
complete_apps = ['docs']

@ -1,374 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'Measure.order'
db.add_column(u'docs_measure', 'order',
self.gf('django.db.models.fields.PositiveIntegerField')(default=None, null=True, blank=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'Measure.order'
db.delete_column(u'docs_measure', 'order')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
'docs.aktrabot': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktRabot'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktrabotitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktRabotItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktrabot_items'", 'to': "orm['docs.AktRabot']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.aktsverki': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktSverki'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_mesto': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'end_date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'saldo_credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'saldo_debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'start_date': ('django.db.models.fields.DateField', [], {}),
'total_credit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_debit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_saldo': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktsverkiitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktSverkiItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktsverki_items'", 'to': "orm['docs.AktSverki']"}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.country': {
'Meta': {'ordering': "('code',)", 'object_name': 'Country'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'})
},
'docs.currency': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Currency'},
'abc_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.dover': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Dover'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_expire_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'dover_doc': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_doc_date': ('django.db.models.fields.DateField', [], {}),
'dover_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_date': ('django.db.models.fields.DateField', [], {}),
'dover_passport_num': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'dover_passport_org': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_ser': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.doveritem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'DoverItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dover_items'", 'to': "orm['docs.Dover']"}),
'qty': ('django.db.models.fields.PositiveIntegerField', [], {}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.faktura': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Faktura'},
'avance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['docs.Currency']", 'null': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
'fix_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'fix_doc_num': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
'fixes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'plat_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'plat_doc_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'receiver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'receiver_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sender_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"}),
'user_is_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'docs.fakturaitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'FakturaItem'},
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'country_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'gtd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'ntd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faktura_items'", 'to': "orm['docs.Faktura']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.invoice': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Invoice'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'closed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'paid_status': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.invoiceitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'InvoiceItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invoice_items'", 'to': "orm['docs.Invoice']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.measure': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Measure'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.nakladn': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Nakladn'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.nakladnitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'NakladnItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nakladn_items'", 'to': "orm['docs.Nakladn']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.platejka': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Platejka'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_info': ('django.db.models.fields.TextField', [], {'max_length': '1000'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_total': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'payment_order': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'payment_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'platej_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'tax_base': ('django.db.models.fields.CharField', [], {'default': "u'\\u0422\\u041f'", 'max_length': '10'}),
'tax_bk': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'tax_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'tax_okato': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_period': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_status': ('django.db.models.fields.CharField', [], {'default': "u'01'", 'max_length': '10'}),
'tax_type': ('django.db.models.fields.CharField', [], {'default': "u'\\u041d\\u0421'", 'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
u'myauth.dokuser': {
'Meta': {'object_name': 'DokUser'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '254'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'null': 'True', 'to': u"orm['customer.UserProfile']"}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30', 'blank': 'True'})
}
}
complete_apps = ['docs']

@ -1,375 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'Country.order'
db.add_column(u'docs_country', 'order',
self.gf('django.db.models.fields.PositiveIntegerField')(default=None, null=True, blank=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'Country.order'
db.delete_column(u'docs_country', 'order')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
'docs.aktrabot': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktRabot'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktrabotitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktRabotItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktrabot_items'", 'to': "orm['docs.AktRabot']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.aktsverki': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktSverki'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_mesto': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'end_date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'saldo_credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'saldo_debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'start_date': ('django.db.models.fields.DateField', [], {}),
'total_credit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_debit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_saldo': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktsverkiitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktSverkiItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktsverki_items'", 'to': "orm['docs.AktSverki']"}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.country': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Country'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.currency': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Currency'},
'abc_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.dover': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Dover'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_expire_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'dover_doc': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_doc_date': ('django.db.models.fields.DateField', [], {}),
'dover_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_date': ('django.db.models.fields.DateField', [], {}),
'dover_passport_num': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'dover_passport_org': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_ser': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.doveritem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'DoverItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dover_items'", 'to': "orm['docs.Dover']"}),
'qty': ('django.db.models.fields.PositiveIntegerField', [], {}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.faktura': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Faktura'},
'avance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['docs.Currency']", 'null': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
'fix_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'fix_doc_num': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
'fixes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'plat_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'plat_doc_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'receiver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'receiver_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sender_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"}),
'user_is_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'docs.fakturaitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'FakturaItem'},
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'country_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'gtd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'ntd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faktura_items'", 'to': "orm['docs.Faktura']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.invoice': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Invoice'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'closed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'paid_status': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.invoiceitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'InvoiceItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invoice_items'", 'to': "orm['docs.Invoice']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.measure': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Measure'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.nakladn': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Nakladn'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.nakladnitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'NakladnItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nakladn_items'", 'to': "orm['docs.Nakladn']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.platejka': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Platejka'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_info': ('django.db.models.fields.TextField', [], {'max_length': '1000'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_total': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'payment_order': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'payment_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'platej_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'tax_base': ('django.db.models.fields.CharField', [], {'default': "u'\\u0422\\u041f'", 'max_length': '10'}),
'tax_bk': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'tax_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'tax_okato': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_period': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_status': ('django.db.models.fields.CharField', [], {'default': "u'01'", 'max_length': '10'}),
'tax_type': ('django.db.models.fields.CharField', [], {'default': "u'\\u041d\\u0421'", 'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
u'myauth.dokuser': {
'Meta': {'object_name': 'DokUser'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '254'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'null': 'True', 'to': u"orm['customer.UserProfile']"}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30', 'blank': 'True'})
}
}
complete_apps = ['docs']

@ -1,377 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'NakladnItem.units_kod'
db.add_column(u'docs_nakladnitem', 'units_kod',
self.gf('django.db.models.fields.CharField')(default=u'-', max_length=20, blank=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'NakladnItem.units_kod'
db.delete_column(u'docs_nakladnitem', 'units_kod')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'short_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
'docs.aktrabot': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktRabot'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktrabotitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktRabotItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktrabot_items'", 'to': "orm['docs.AktRabot']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.aktsverki': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktSverki'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_mesto': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'end_date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'saldo_credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'saldo_debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'start_date': ('django.db.models.fields.DateField', [], {}),
'total_credit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_debit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_saldo': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktsverkiitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktSverkiItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktsverki_items'", 'to': "orm['docs.AktSverki']"}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.country': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Country'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.currency': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Currency'},
'abc_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.dover': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Dover'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_expire_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'dover_doc': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_doc_date': ('django.db.models.fields.DateField', [], {}),
'dover_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_date': ('django.db.models.fields.DateField', [], {}),
'dover_passport_num': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'dover_passport_org': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_ser': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.doveritem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'DoverItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dover_items'", 'to': "orm['docs.Dover']"}),
'qty': ('django.db.models.fields.PositiveIntegerField', [], {}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.faktura': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Faktura'},
'avance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['docs.Currency']", 'null': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
'fix_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'fix_doc_num': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
'fixes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'plat_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'plat_doc_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'receiver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'receiver_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sender_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"}),
'user_is_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'docs.fakturaitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'FakturaItem'},
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'country_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'gtd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'ntd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faktura_items'", 'to': "orm['docs.Faktura']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.invoice': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Invoice'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'closed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'paid_status': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.invoiceitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'InvoiceItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invoice_items'", 'to': "orm['docs.Invoice']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.measure': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Measure'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.nakladn': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Nakladn'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.nakladnitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'NakladnItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nakladn_items'", 'to': "orm['docs.Nakladn']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.platejka': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Platejka'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_info': ('django.db.models.fields.TextField', [], {'max_length': '1000'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_total': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'payment_order': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'payment_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'platej_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'tax_base': ('django.db.models.fields.CharField', [], {'default': "u'\\u0422\\u041f'", 'max_length': '10'}),
'tax_bk': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'tax_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'tax_okato': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_period': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_status': ('django.db.models.fields.CharField', [], {'default': "u'01'", 'max_length': '10'}),
'tax_type': ('django.db.models.fields.CharField', [], {'default': "u'\\u041d\\u0421'", 'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
u'myauth.dokuser': {
'Meta': {'object_name': 'DokUser'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '254'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'null': 'True', 'to': u"orm['customer.UserProfile']"}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30', 'blank': 'True'})
}
}
complete_apps = ['docs']

@ -1,387 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import DataMigration
from django.db import models
class Migration(DataMigration):
def forwards(self, orm):
"Write your forwards methods here."
# Note: Don't use "from appname.models import ModelName".
# Use orm.ModelName to refer to models in this application,
# and orm['appname.ModelName'] for models in other applications.
fixes = {
u'шт.': u'шт',
u'м.куб': u'м³',
u'уп': u'упак',
u'руб.': u'руб',
}
for item in orm.NakladnItem.objects.all():
units = item.units.lower()
if units in fixes:
units = fixes.get(units)
if item.units != units:
item.units = units
item.save()
def backwards(self, orm):
"Write your backwards methods here."
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'short_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
'docs.aktrabot': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktRabot'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktrabotitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktRabotItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktrabot_items'", 'to': "orm['docs.AktRabot']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.aktsverki': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktSverki'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_mesto': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'end_date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'saldo_credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'saldo_debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'start_date': ('django.db.models.fields.DateField', [], {}),
'total_credit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_debit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_saldo': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktsverkiitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktSverkiItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktsverki_items'", 'to': "orm['docs.AktSverki']"}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.country': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Country'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.currency': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Currency'},
'abc_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.dover': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Dover'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_expire_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'dover_doc': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_doc_date': ('django.db.models.fields.DateField', [], {}),
'dover_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_date': ('django.db.models.fields.DateField', [], {}),
'dover_passport_num': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'dover_passport_org': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_ser': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.doveritem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'DoverItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dover_items'", 'to': "orm['docs.Dover']"}),
'qty': ('django.db.models.fields.PositiveIntegerField', [], {}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.faktura': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Faktura'},
'avance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['docs.Currency']", 'null': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
'fix_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'fix_doc_num': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
'fixes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'plat_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'plat_doc_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'receiver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'receiver_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sender_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"}),
'user_is_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'docs.fakturaitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'FakturaItem'},
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'country_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'gtd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'ntd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faktura_items'", 'to': "orm['docs.Faktura']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.invoice': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Invoice'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'closed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'paid_status': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.invoiceitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'InvoiceItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invoice_items'", 'to': "orm['docs.Invoice']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.measure': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Measure'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.nakladn': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Nakladn'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.nakladnitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'NakladnItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nakladn_items'", 'to': "orm['docs.Nakladn']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.platejka': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Platejka'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_info': ('django.db.models.fields.TextField', [], {'max_length': '1000'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_total': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'payment_order': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'payment_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'platej_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'tax_base': ('django.db.models.fields.CharField', [], {'default': "u'\\u0422\\u041f'", 'max_length': '10'}),
'tax_bk': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'tax_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'tax_okato': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_period': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_status': ('django.db.models.fields.CharField', [], {'default': "u'01'", 'max_length': '10'}),
'tax_type': ('django.db.models.fields.CharField', [], {'default': "u'\\u041d\\u0421'", 'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
u'myauth.dokuser': {
'Meta': {'object_name': 'DokUser'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '254'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'null': 'True', 'to': u"orm['customer.UserProfile']"}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30', 'blank': 'True'})
}
}
complete_apps = ['docs']
symmetrical = True

@ -1,382 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import DataMigration
from django.db import models
class Migration(DataMigration):
def forwards(self, orm):
"Write your forwards methods here."
# Note: Don't use "from appname.models import ModelName".
# Use orm.ModelName to refer to models in this application,
# and orm['appname.ModelName'] for models in other applications.
measure = dict((m.name.lower(), m.code.lower()) for m in orm.Measure.objects.all())
measure[u'г'] = u'163'
for item in orm.NakladnItem.objects.all():
units = item.units.lower()
units_kod = measure.get(units)
if units_kod:
item.units_kod = units_kod
item.save()
def backwards(self, orm):
"Write your backwards methods here."
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'customer.bankaccount': {
'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'},
'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'short_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.client': {
'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}),
'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
u'customer.userprofile': {
'Meta': {'object_name': 'UserProfile'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}),
'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}),
'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}),
'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}),
'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}),
'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}),
'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}),
'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}),
'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'})
},
'docs.aktrabot': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktRabot'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktrabotitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktRabotItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktrabot_items'", 'to': "orm['docs.AktRabot']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.aktsverki': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'AktSverki'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_mesto': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'end_date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'saldo_credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'saldo_debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'start_date': ('django.db.models.fields.DateField', [], {}),
'total_credit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_debit': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'total_saldo': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.aktsverkiitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'AktSverkiItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'credit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
'debit': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aktsverki_items'", 'to': "orm['docs.AktSverki']"}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.country': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Country'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.currency': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Currency'},
'abc_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.dover': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Dover'},
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_expire_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'dover_doc': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_doc_date': ('django.db.models.fields.DateField', [], {}),
'dover_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_date': ('django.db.models.fields.DateField', [], {}),
'dover_passport_num': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'dover_passport_org': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'dover_passport_ser': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.doveritem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'DoverItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dover_items'", 'to': "orm['docs.Dover']"}),
'qty': ('django.db.models.fields.PositiveIntegerField', [], {}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.faktura': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Faktura'},
'avance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['docs.Currency']", 'null': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
'fix_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'fix_doc_num': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
'fixes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'plat_doc_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'plat_doc_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}),
'receiver': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'receiver_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sender_fakturas'", 'null': 'True', 'to': u"orm['customer.Client']"}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"}),
'user_is_sender': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'docs.fakturaitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'FakturaItem'},
'country_code': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'country_name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'gtd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'ntd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faktura_items'", 'to': "orm['docs.Faktura']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.invoice': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Invoice'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'closed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'paid_status': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.invoiceitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'InvoiceItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invoice_items'", 'to': "orm['docs.Invoice']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.measure': {
'Meta': {'ordering': "('order', 'name')", 'object_name': 'Measure'},
'code': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
},
'docs.nakladn': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Nakladn'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}),
'doc_text': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '1000', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'invoice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['docs.Invoice']", 'blank': 'True', 'null': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'signed_status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
'docs.nakladnitem': {
'Meta': {'ordering': "('created_at',)", 'object_name': 'NakladnItem'},
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nakladn_items'", 'to': "orm['docs.Nakladn']"}),
'price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'qty': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '3'}),
'total_price': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
'units': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'units_kod': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'docs.platejka': {
'Meta': {'ordering': "('-doc_date',)", 'object_name': 'Platejka'},
'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.BankAccount']"}),
'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['customer.Client']"}),
'company': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['customer.UserProfile']", 'null': 'True'}),
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'doc_date': ('django.db.models.fields.DateField', [], {}),
'doc_info': ('django.db.models.fields.TextField', [], {'max_length': '1000'}),
'doc_num': ('django.db.models.fields.PositiveIntegerField', [], {}),
'doc_total': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '2'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nds_value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
'payment_order': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'payment_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'platej_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
'tax_base': ('django.db.models.fields.CharField', [], {'default': "u'\\u0422\\u041f'", 'max_length': '10'}),
'tax_bk': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'tax_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}),
'tax_okato': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_period': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'tax_status': ('django.db.models.fields.CharField', [], {'default': "u'01'", 'max_length': '10'}),
'tax_type': ('django.db.models.fields.CharField', [], {'default': "u'\\u041d\\u0421'", 'max_length': '10'}),
'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': u"orm['myauth.DokUser']"})
},
u'myauth.dokuser': {
'Meta': {'object_name': 'DokUser'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '254'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'null': 'True', 'to': u"orm['customer.UserProfile']"}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30', 'blank': 'True'})
}
}
complete_apps = ['docs']
symmetrical = True

@ -1,8 +0,0 @@
from .refs import Currency, Country, Measure
from .invoice import Invoice, InvoiceItem
from .aktrabot import AktRabot, AktRabotItem
from .aktsverki import AktSverki, AktSverkiItem
from .dover import Dover, DoverItem
from .platejka import Platejka
from .nakladn import Nakladn, NakladnItem
from .faktura import Faktura, FakturaItem

@ -1,54 +0,0 @@
# -*- coding: utf-8 -*-
from decimal import Decimal
from django.db import models
from .base_models import BaseModel, VeryBaseModel
from .mixins import SignedStatusFieldMixin
class AktSverki(BaseModel, SignedStatusFieldMixin):
"""Акт сверки."""
doc_mesto = models.CharField(u'Место подписания', max_length=256, help_text=u'(Например, г. Москва)')
# период
start_date = models.DateField('С')
end_date = models.DateField('По')
# входящее сальдо
saldo_debit = models.DecimalField(u'Дебетовое', max_digits=10, decimal_places=2, blank=True) # , default=Decimal('0.00'))
saldo_credit = models.DecimalField(u'Кредитовое', max_digits=10, decimal_places=2, blank=True) # , default=Decimal('0.00'))
# вычисляемые поля - обновляются при сохранении записей табличной части
total_debit = models.DecimalField(u'Общее дебетовое сальдо', max_digits=10, decimal_places=2, blank=True,
default=Decimal('0.00'))
total_credit = models.DecimalField(u'Общее кредитовое сальдо', max_digits=10, decimal_places=2, blank=True,
default=Decimal('0.00'))
total_saldo = models.DecimalField(u'Итоговое сальдо', max_digits=10, decimal_places=2, blank=True,
default=Decimal('0.00'))
class Meta(BaseModel.Meta):
verbose_name = u'Акт сверки'
verbose_name_plural = u'Акты сверки'
def save(self, *args, **kwargs):
if not self.saldo_debit: self.saldo_debit = 0
if not self.saldo_credit: self.saldo_credit = 0
super(AktSverki, self).save(*args, **kwargs)
class AktSverkiItem(VeryBaseModel):
"""Табличная часть акта сверки."""
parent = models.ForeignKey(AktSverki, related_name='aktsverki_items')
name = models.CharField(u'Наименование операции, документы', max_length=256)
debit = models.DecimalField(u'Дебет', max_digits=10, decimal_places=2, blank=True)
credit = models.DecimalField(u'Кредит', max_digits=10, decimal_places=2, blank=True)
class Meta(VeryBaseModel.Meta):
verbose_name = u'Табл. часть акта сверки'
verbose_name_plural = u'Табл. части актов сверки'
ordering = ('created_at',)
def save(self, *args, **kwargs):
if not self.debit: self.debit = 0
if not self.credit: self.credit = 0
super(AktSverkiItem, self).save(*args, **kwargs)

@ -1,101 +0,0 @@
# -*- coding: utf-8 -*-
from django.db import models
from django.conf import settings
from project.customer.models import UserProfile
from project.customer.models import Client, BankAccount
from . import managers
from .. import consts
class VeryBaseModel(models.Model):
"""Очень базовая абстрактная модель."""
created_at = models.DateTimeField(u'Создан', auto_now_add=True)
updated_at = models.DateTimeField(u'Изменен', auto_now=True)
class Meta:
abstract = True
app_label = 'docs'
ordering = ('-created_at',)
get_latest_by = 'created_at'
# -----------------------------------------------------------------------------
class BaseModel(VeryBaseModel):
"""Абстрактная модель бух.формы."""
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+', verbose_name=u'Пользователь')
company = models.ForeignKey(UserProfile, verbose_name=u'Компания', null=True)
doc_num = models.PositiveIntegerField(u'Номер')
doc_date = models.DateField('Дата создания')
client = models.ForeignKey(Client, related_name='+', verbose_name=u'Контрагент')
objects = managers.BaseModelManager()
class Meta(VeryBaseModel.Meta):
abstract = True
ordering = ('-doc_date',)
def __unicode__(self):
return u'%s%s от %s' % (self._meta.verbose_name or '', self.doc_num, self.doc_date)
class BaseNdsModel(BaseModel):
"""Расширение абстрактной модели бух.формы - НДС.
Доп. поля под тип и ставку НДС.
"""
nds_value = models.PositiveSmallIntegerField(u'Ставка НДС', choices=consts.NDS_VALUE_CHOICES, default=consts.NDS_VALUE_0)
class Meta(BaseModel.Meta):
abstract = True
def get_nds_as_number(self):
"""Значение НДС как число (без символа %)."""
return consts.NDS_VALUE_NUMERIC.get(self.nds_value, 0)
class BaseInvoiceModel(BaseNdsModel):
"""Расширение абстрактной модели бух.формы - по типу счета.
Доп. поля под расчетный счет и дополнительные условия.
"""
bank_account = models.ForeignKey(BankAccount, related_name='+', verbose_name=u'Расчётный счёт')
doc_text = models.TextField(u'Дополнительные условия', max_length=1000, blank=True, default='')
class Meta(BaseNdsModel.Meta):
abstract = True
# -----------------------------------------------------------------------------
class BaseItemModel(VeryBaseModel):
"""Абстрактная модель табличной части бух.формы."""
name = models.CharField(u'Наименование', max_length=256)
qty = models.DecimalField(u'Кол-во', max_digits=10, decimal_places=3)
units = models.CharField(u'Ед. изм.', max_length=20)
class Meta(VeryBaseModel.Meta):
abstract = True
ordering = ('created_at',)
def __unicode__(self):
return u'%s, %s %s' % (self.name[:30], self.qty, self.units)
class BaseItemInvoiceModel(BaseItemModel):
"""Расширение абстрактной модели табл. части бух.формы - по типу счета.
Доп. поля под цену и сумму.
"""
price = models.DecimalField(u'Цена', max_digits=10, decimal_places=2)
total_price = models.DecimalField(u'Сумма', max_digits=10, decimal_places=2)
class Meta(BaseItemModel.Meta):
abstract = True
def __unicode__(self):
curr = consts.CURRENCY_CHOICES_DICT.get(getattr(self, 'currency', consts.CURR_RUB))
return u'%s, %s %s * %s = %s %s' % (self.name[:30], self.qty, self.units, self.price, self.total_price, curr)
def save(self, *args, **kwargs):
self.total_price = self.price * self.qty # пересчитать сумму
super(BaseItemInvoiceModel, self).save(*args, **kwargs)

@ -1,42 +0,0 @@
# -*- coding: utf-8 -*-
from django.db import models
from .base_models import BaseModel, VeryBaseModel
class Dover(BaseModel):
"""Доверенность на получение ТМЦ."""
doc_expire_date = models.DateField(u'Срок действия')
# на получение мат.ценностей по документу
dover_doc = models.CharField(u'По документу №', max_length=256)
dover_doc_date = models.DateField(u'Дата документа')
# кому выдана и его документы
dover_name = models.CharField(u'Должность, ФИО', max_length=256, help_text=u'Полностью в дат. падеже.')
dover_passport_ser = models.CharField(u'Серия', max_length=10)
dover_passport_num = models.CharField(u'Номер', max_length=10)
dover_passport_org = models.CharField(u'Кем выдан', max_length=256)
dover_passport_date = models.DateField(u'Дата выдачи')
class Meta(BaseModel.Meta):
verbose_name = u'Доверенность на получ. ТМЦ'
verbose_name_plural = u'Доверенности на получ. ТМЦ'
class DoverItem(VeryBaseModel):
"""Табличная часть доверенности на получение ТМЦ."""
parent = models.ForeignKey(Dover, related_name='dover_items')
name = models.CharField(u'Наименование', max_length=256)
qty = models.PositiveIntegerField(u'Количество')
units = models.CharField(u'Ед. измерения', max_length=20)
class Meta(VeryBaseModel.Meta):
verbose_name = u'Табл. часть доверенности'
verbose_name_plural = u'Табл. части доверенностей'
#app_label = 'docs'
ordering = ('created_at',)
def __unicode__(self):
return u'%s, %s %s' % (self.name[:30], self.qty, self.units)

@ -1,64 +0,0 @@
# -*- coding: utf-8 -*-
from django.db import models
from project.customer.models import Client
from .base_models import BaseInvoiceModel, BaseItemInvoiceModel
from .refs import Currency, Country, Measure
from .mixins import SignedStatusFieldMixin, InvoiceFieldMixin
from .linked_docs_mixin import LinkedDocsMixin
class Faktura(BaseInvoiceModel, SignedStatusFieldMixin, InvoiceFieldMixin, LinkedDocsMixin):
"""Счёт-фактура"""
doc_reason = models.CharField(u'Основание', max_length=256, blank=True, default='')
fixes = models.BooleanField(u'Изменения', default=False)
avance = models.BooleanField(u'аванс', default=False)
currency = models.ForeignKey(Currency, verbose_name=u'валюта', null=True)
user_is_sender = models.BooleanField(u'пользователь - отправитель', default=False)
sender = models.ForeignKey(Client, related_name='sender_fakturas', blank=True, null=True, verbose_name=u'Отправитель')
receiver = models.ForeignKey(Client, related_name='receiver_fakturas', blank=True, null=True, verbose_name=u'Получатель')
plat_doc_num = models.CharField(u'Номер платёжного документа', max_length=30, blank=True, default='')
plat_doc_date = models.DateField('Дата платёжного документа', blank=True, null=True)
fix_doc_num = models.PositiveIntegerField(u'Номер исправления', max_length=30, null=True, blank=True)
fix_doc_date = models.DateField('Дата исправления', blank=True, null=True)
def get_consignor_and_address(self):
"""Отправитель и адрес
"""
if self.user_is_sender:
return u'%s, %s' % (self.user.profile.get_company_name(), self.user.profile.address)
elif self.sender:
return '%s, %s' % (self.sender.name, self.sender.address)
else:
return u''
def get_receiver_and_address(self):
"""Получатель и адрес
"""
if self.receiver:
#return self.user
return '%s, %s' % (self.receiver.name, self.receiver.address)
else:
return u''
class Meta(BaseInvoiceModel.Meta):
verbose_name = u'Счёт-фактура'
verbose_name_plural = u'Счета-фактуры'
app_label="docs"
class FakturaItem(BaseItemInvoiceModel):
"""Табличная часть фактуры"""
units_kod = models.CharField(u'Код единицы измерения', max_length=10, blank=True, default=u'-')
parent = models.ForeignKey(Faktura, related_name='faktura_items')
country_code = models.CharField(u'Код страны', max_length=10, blank=True, default=u'-')
country_name = models.CharField(u'Название страны', max_length=256)
gtd = models.CharField(u'Основание', max_length=256, blank=True, default='')
ntd = models.CharField(u'Номер транспортной декларации', max_length=256, blank=True, default='')
#measure = models.ForeignKey(Measure, related_name='m_faktura_items')
class Meta(BaseItemInvoiceModel.Meta):
verbose_name = u'Табл. часть фактуры'
verbose_name_plural = u'Табл. части фактур'
app_label="docs"

@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
from django.db import models
from .base_models import BaseInvoiceModel, BaseItemInvoiceModel
from .linked_docs_mixin import LinkedDocsMixin
from .. import consts
class Invoice(BaseInvoiceModel, LinkedDocsMixin):
"""Счет."""
UNPAID = 1
PARTLY_PAID = 2
PAID = 3
PAID_CHOICES = (
(UNPAID, u'Нет'),
(PARTLY_PAID, u'Частично'),
(PAID, u'Да'),
)
paid_status = models.PositiveSmallIntegerField(u'Оплачен?', choices=PAID_CHOICES, default=UNPAID)
closed_status = models.BooleanField(u'Закрыт?', choices=consts.BOOL_CHOICES, default=False)
class Meta(BaseInvoiceModel.Meta):
verbose_name = u'Счёт'
verbose_name_plural = u'Счета'
class InvoiceItem(BaseItemInvoiceModel):
"""Табличная часть счета."""
parent = models.ForeignKey(Invoice, related_name='invoice_items')
class Meta(BaseItemInvoiceModel.Meta):
verbose_name = u'Табл. часть счета'
verbose_name_plural = u'Табл. части счетов'

@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
from django.db import models
from .invoice import Invoice
from .. import consts
class SignedStatusFieldMixin(models.Model):
"""Mixin: добавляет поле `Подписан?`"""
signed_status = models.BooleanField(u'Подписан?', choices=consts.BOOL_CHOICES, default=False)
class Meta:
abstract = True
class InvoiceFieldMixin(models.Model):
"""Mixin: добавляет FK поле `Создать по счёту`"""
invoice = models.ForeignKey(Invoice, related_name='+', verbose_name=u'Создать по счёту', blank=True, null=True,
default=None, on_delete=models.SET_NULL)
class Meta:
abstract = True

@ -1,26 +0,0 @@
# -*- coding: utf-8 -*-
from django.db import models
from .base_models import BaseInvoiceModel, BaseItemInvoiceModel
from .mixins import SignedStatusFieldMixin, InvoiceFieldMixin
from .linked_docs_mixin import LinkedDocsMixin
class Nakladn(BaseInvoiceModel, SignedStatusFieldMixin, InvoiceFieldMixin, LinkedDocsMixin):
"""Накладная торг12."""
doc_reason = models.CharField(u'Основание', max_length=256, blank=True, default='')
class Meta(BaseInvoiceModel.Meta):
verbose_name = u'Накладная'
verbose_name_plural = u'Накладные'
class NakladnItem(BaseItemInvoiceModel):
"""Табличная часть накладной торг12."""
parent = models.ForeignKey(Nakladn, related_name='nakladn_items')
units_kod = models.CharField(u'Код единицы измерения', max_length=20, blank=True, default=u'-')
class Meta(BaseItemInvoiceModel.Meta):
verbose_name = u'Табл. часть накладной'
verbose_name_plural = u'Табл. части накладных'

@ -1,104 +0,0 @@
# -*- coding: utf-8 -*-
from django.db import models
from project.customer.models import BankAccount
from .base_models import BaseModel
from .. import consts
class Platejka(BaseModel):
"""Платёжное поручение."""
platej_type = models.PositiveSmallIntegerField(u'Тип платёжного поручения', choices=consts.PLATEJ_TYPE_CHOICES,
default=consts.PLATEJ_TYPE_COMMERCE)
bank_account = models.ForeignKey(BankAccount, related_name='+', verbose_name=u'Расчётный счёт')
doc_total = models.DecimalField(u'Сумма', max_digits=10, decimal_places=2)
payment_type = models.PositiveSmallIntegerField(u'Вид платежа', choices=consts.PAYMENT_TYPE_CHOICES,
default=consts.PAYMENT_TYPE_CHOICES[0][0])
payment_order = models.CharField(u'Очерёдность платежа', max_length=10)
doc_info = models.TextField(u'Назначение платежа', max_length=1000)
# поля только для перевода денег (коммерческое)
nds_value = models.PositiveSmallIntegerField(u'Ставка НДС', choices=consts.NDS_VALUE_CHOICES, default=consts.NDS_VALUE_0)
# поля только для оплаты налогов (налоговое)
tax_status = models.CharField(u'Статус составителя', max_length=10, choices=consts.TAX_STATUS_CHOICES,
default=consts.TAX_STATUS_CHOICES[0][0])
tax_base = models.CharField(u'Основание налогового платежа', max_length=10, choices=consts.TAX_BASE,
default=consts.TAX_BASE[0][0])
tax_type = models.CharField(u'Тип налогового платежа', max_length=10, choices=consts.TAX_TYPE,
default=consts.TAX_TYPE[0][0])
tax_num = models.CharField(u'Номер документа основания', max_length=50, blank=True, default='')
tax_date = models.DateField(u'Дата документа основания', blank=True, null=True)
tax_bk = models.CharField(u'Код БК доходов РФ', max_length=256)
tax_okato = models.CharField(u'Код ОКАТО сборщика платежей', max_length=256)
tax_period = models.CharField(u'Период, за который начисляется налог', max_length=256,
help_text = (u'Формат ввода периода платежей:<br />'
u'Месячный платёж - "МС.00.0000"<br />'
u'Квартальный платёж - "КВ.00.0000"<br />'
u'Полугодовой платёж - "ПЛ.00.0000"<br />'
u'Годовой платёж - "ГД.00.0000"<br />'
u'Платёж по дате - "дд.мм.гггг"')
)
class Meta(BaseModel.Meta):
verbose_name = u'Платёжное поручение'
verbose_name_plural = u'Платёжные поручения'
# хелперы, чтоб не оборачивать в шаблонах каждое обращение к определенным полям в проверку типа платежа
def is_commerce(self):
return self.platej_type == consts.PLATEJ_TYPE_COMMERCE
def is_tax(self):
return self.platej_type == consts.PLATEJ_TYPE_TAX
def get_tax_status_kod(self):
"""Налоги. Статус составителя, КОД."""
if self.platej_type == consts.PLATEJ_TYPE_TAX and self.tax_status:
return self.tax_status
return u''
def get_tax_base_kod(self):
"""Налоги. Основание налогового платежа, КОД."""
if self.platej_type == consts.PLATEJ_TYPE_TAX and self.tax_base:
return self.tax_base
return u''
def get_tax_type_kod(self):
"""Налоги. Тип налогового платежа, КОД."""
if self.platej_type == consts.PLATEJ_TYPE_TAX and self.tax_type:
return self.tax_type
return u''
def get_tax_num(self):
"""Налоги. Номер документа основания."""
if self.platej_type == consts.PLATEJ_TYPE_TAX and self.tax_num:
return self.tax_num
return u''
def get_tax_date(self):
"""Налоги. Дата документа основания."""
if self.platej_type == consts.PLATEJ_TYPE_TAX and self.tax_date:
return self.tax_date
return u''
def get_tax_bk(self):
"""Налоги. Код БК доходов РФ."""
if self.platej_type == consts.PLATEJ_TYPE_TAX and self.tax_bk:
return self.tax_bk
return u''
def get_tax_okato(self):
"""Налоги. Код ОКАТО сборщика платежей."""
if self.platej_type == consts.PLATEJ_TYPE_TAX and self.tax_okato:
return self.tax_okato
return u''
def get_tax_period(self):
"""Налоги. Период, за который начисляется налог."""
if self.platej_type == consts.PLATEJ_TYPE_TAX and self.tax_period:
return self.tax_period
return u''

@ -1,16 +0,0 @@
"""
This file demonstrates writing tests using the unittest module. These will pass
when you run "manage.py test".
Replace this with more appropriate tests for your application.
"""
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.assertEqual(1 + 1, 2)

@ -1,81 +0,0 @@
# -*- coding: UTF-8 -*-
from django.conf.urls import *
from .views import (InvoiceViews, AktRabotViews, AktSverkiViews, DoverViews, PlatejkaViews, NakladnViews, FakturaViews)
from .views import getview, index, get_invoices, get_tbl_items, get_client_by_invoice, toggle_doc_status
urlpatterns = patterns('docs.views',
url(r'^$', index, name='docs_index'), # страница со ссылками на бух. формы
)
klasses = [
('invoice', InvoiceViews),
('aktrabot', AktRabotViews),
('aktsverki', AktSverkiViews),
('dover', DoverViews),
('platejka', PlatejkaViews),
('nakladn', NakladnViews),
('faktura', FakturaViews),
]
for name, klass in klasses:
urlpatterns += patterns('docs.views',
# список
url(r'^%s/$' % name, getview, {'klass': klass, 'oper': 'list',}, name='docs_%s_list' % name),
# список, пагинация
url(r'^%s/page/(?P<page_num>[0-9]+)/$' % name, getview, {'klass': klass, 'oper': 'list',},
name='docs_%s_list' % name),
# добавить
url(r'^%s/add/$' % name, getview, {'klass': klass, 'oper': 'add',}, name='docs_%s_add' % name),
# редактировать
url(r'^%s/(?P<id>\d+)/edit/$' % name, getview, {'klass': klass, 'oper': 'edit',},
name='docs_%s_edit' % name),
# создать копию
url(r'^%s/(?P<id>\d+)/copy/$' % name, getview, {'klass': klass, 'oper': 'copy',},
name='docs_%s_copy' % name),
# удалить
url(r'^%s/(?P<id>\d+)/delete/$' % name, getview, {'klass': klass, 'oper': 'delete',},
name='docs_%s_delete' % name),
# сохранить в pdf
url(r'^%s/(?P<id>\d+)/pdf/$' % name, getview, {'klass': klass, 'oper': 'as_pdf',},
name='docs_%s_pdf' % name),
# показать картинку
url(r'^%s/(?P<id>\d+)/preview/$' % name, getview, {'klass': klass, 'oper': 'as_img',},
name='docs_%s_img' % name),
# сохранить в excel
url(r'^%s/(?P<id>\d+)/xls/$' % name, getview, {'klass': klass, 'oper': 'as_xls',},
name='docs_%s_xls' % name),
# отправить pdf/xls на email
url(r'^%s/(?P<id>\d+)/email/$' % name, getview, {'klass': klass, 'oper': 'email',},
name='docs_%s_email' % name),
# поля документа - AJAX
url(r'^%s/(?P<id>\d+)/get/ajax/$' % name, getview, {'klass': klass, 'oper': 'get_ajax',},
name='docs_%s_get_ajax' % name),
# отправить pdf/xls на email - AJAX
url(r'^%s/(?P<id>\d+)/email/ajax/$' % name, getview, {'klass': klass, 'oper': 'email_ajax',},
name='docs_%s_email_ajax' % name),
url(r'^ajax_get_invoices/$', get_invoices, name='ajax_get_invoices'),
url(r'^ajax_get_invoices/(?P<client_id>\d+)/$', get_invoices, name='ajax_get_invoices'),
url(r'^ajax_get_tbl_items/(?P<invoice_id>\d+)/$', get_tbl_items, name='ajax_get_tbl_items'),
url(r'^ajax_get_client_by_invoice/(?P<invoice_id>\d+)/$', get_client_by_invoice, name='ajax_get_client_by_invoice'),
url(r'^ajax_toggle_doc_status/(?P<doc_type>\w+)/(?P<doc_id>\d+)/(?P<doc_attr>\w+)/$', toggle_doc_status, name='ajax_get_client_by_invoice'),
)
# доп. обработчики: создать Документ по Счету
urlpatterns += patterns('docs.views',
# создать по Счету -> Акт вып. работ
url(r'^%s/add/by/invoice/(?P<invoice_id>\d+)/$' % 'aktrabot', getview,
{'klass': AktRabotViews, 'oper': 'add_by_invoice',}, name='docs_%s_add_by_invoice' % 'aktrabot'),
# создать по Счету -> Накладную
url(r'^%s/add/by/invoice/(?P<invoice_id>\d+)/$' % 'nakladn', getview,
{'klass': NakladnViews, 'oper': 'add_by_invoice',}, name='docs_%s_add_by_invoice' % 'nakladn'),
# создать по Счету -> Счёт-фактуру
url(r'^%s/add/by/invoice/(?P<invoice_id>\d+)/$' % 'faktura', getview, {'klass': FakturaViews, 'oper': 'add_by_invoice',},
name='docs_%s_add_by_invoice' % 'faktura'),
)

@ -1,30 +0,0 @@
# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.http import Http404
from django.conf import settings
from .invoice import InvoiceViews
from .aktrabot import AktRabotViews
from .aktsverki import AktSverkiViews
from .dover import DoverViews
from .platejka import PlatejkaViews
from .nakladn import NakladnViews
from .faktura import FakturaViews
from .ajax import get_invoices, get_tbl_items, get_client_by_invoice, toggle_doc_status
@login_required # важно!!!
def getview(request, *args, **kwargs):
views = kwargs['klass'](request) # класс с вьюхами
handler = getattr(views, kwargs['oper']) # конкретная вьюха
return handler(request, *args, **kwargs) # передать управление во вьюху и вернуть ее результат
# -----------------------------------------------------------------------------
@login_required
def index(request):
"""Страница со ссылками на все бух.формы."""
template_name = 'docs/index.html'
return render(request, template_name)

@ -1,71 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from project.customer.forms import ClientsListForm
from ..models import Dover, DoverItem
from ..forms import DoverForm, DoverItemForm
from ..filters import DoverFilterSet
from .base_views import BaseItemsViews
class DoverViews(BaseItemsViews):
"""Views для доверенностей на получение ТМЦ."""
MODEL = Dover # модель документа
FORM_CLASS = DoverForm # форма документа
ITEM_MODEL = DoverItem # модель табличной части документа
ITEM_FORM_CLASS = DoverItemForm # форма табличной части документа
ITEM_FORM_PREFIX = 'dover_items' # префикс формы табличной части
# поля, по которым можно сортировать список документов
ORDER_FIELDS = ('doc_num', 'doc_date', 'doc_expire_date', 'dover_name', 'client__name',)
FILTERSET_CLASS = DoverFilterSet # фильтры
# префикс именованных урлов этого типа документов, для передачи в шаблон
URL_PREFIX = 'docs_dover_'
# именованные урлы операций
URL_LIST = 'docs_dover_list'
URL_EDIT = 'docs_dover_edit'
# пути к шаблонам
TEMPLATE_LIST = 'docs/dover/list.html'
TEMPLATE_FORM = 'docs/dover/form.html'
# для генерации pdf/xls
PDF_TEMPLATE = 'docs/dover/as_pdf.html'
XLS_TEMPLATE = 'dover.xls'
FILENAME = u'Доверенность № %s, %s' # без расширения
# --- грамматика для вывода наименований в шаблонах
PADEJI = {
'imenit': u'доверенность', # кто? что?
'rodit': u'доверенности', # кого? чего?
'dateln': u'доверенности', # кому? чему?
'vinit': u'доверенность', # кого? что?
'tvorit': u'доверенностью', # кем? чем?
'predlojn': u'доверенности', # о ком? о чём?
}
PADEJI_MNOJ = {
'imenit': u'доверенности', # кто? что?
'rodit': u'доверенностью', # кого? чего?
'dateln': u'доверенностям', # кому? чему?
'vinit': u'доверенности', # кого? что?
'tvorit': u'доверенностями', # кем? чем?
'predlojn': u'доверенностях', # о ком? о чём?
}
def update_list_dict(self, dictionary):
"""Здесь можно изменить словарь параметров перед передачей его в шаблон вывода списка документов."""
dictionary['clients_form'] = ClientsListForm(self.request.user)
def init_form(self):
"""Начальные значения полей формы документа."""
initial = super(DoverViews, self).init_form()
initial['doc_expire_date'] = datetime.datetime.now() + datetime.timedelta(1)
return initial

@ -1,84 +0,0 @@
# -*- coding: utf-8 -*-
from decimal import Decimal
from project.customer.forms import ClientsListForm
from ..models import Invoice, InvoiceItem
from ..forms import InvoiceForm, InvoiceItemForm
from ..filters import InvoiceFilterSet
from .. import utils
from .base_views import BaseItemsViews
class InvoiceViews(BaseItemsViews):
"""Views для счетов-фактур."""
MODEL = Invoice # модель документа
FORM_CLASS = InvoiceForm # форма документа
ITEM_MODEL = InvoiceItem # модель табличной части документа
ITEM_FORM_CLASS = InvoiceItemForm # форма табличной части документа
ITEM_FORM_PREFIX = 'invoice_items' # префикс формы табличной части
ORDER_FIELDS = ('doc_date', 'doc_num', 'client__name', 'doc_sum', 'paid_status', 'closed_status')
FILTERSET_CLASS = InvoiceFilterSet # фильтры
# по какому полю суммировать табличную часть документа при показе списком
LIST_SUM_FIELD = 'invoice_items__total_price'
# префикс именованных урлов этого типа документов, для передачи в шаблон
URL_PREFIX = 'docs_invoice_'
# именованные урлы операций
URL_LIST = 'docs_invoice_list'
URL_EDIT = 'docs_invoice_edit'
# пути к шаблонам
TEMPLATE_LIST = 'docs/invoice/list.html'
TEMPLATE_FORM = 'docs/invoice/form.html'
TEMPLATE_CREATE_DOCS = 'docs/parts/invoice_create_docs.html'
TEMPLATE_LINKED_DOCS_LIST = 'docs/parts/linked_docs_list.html'
# для генерации pdf/xls
PDF_TEMPLATE = 'docs/invoice/as_pdf.html'
XLS_TEMPLATE = 'invoice.xls'
FILENAME = u'Счет № %s, %s' # без расширения
MAYBE_SIGNED = True
# --- грамматика для вывода наименований в шаблонах
PADEJI = {
'imenit': u'счёт', # кто? что?
'rodit': u'счёта', # кого? чего?
'dateln': u'счёту', # кому? чему?
'vinit': u'счёт', # кого? что?
'tvorit': u'счётом', # кем? чем?
'predlojn': u'счёте', # о ком? о чём?
}
PADEJI_MNOJ = {
'imenit': u'счета', # кто? что?
'rodit': u'счетов', # кого? чего?
'dateln': u'счетам', # кому? чему?
'vinit': u'счета', # кого? что?
'tvorit': u'счетами', # кем? чем?
'predlojn': u'счетах', # о ком? о чём?
}
def update_list_dict(self, dictionary):
"""Здесь можно изменить словарь параметров перед передачей его в шаблон вывода списка документов."""
dictionary['clients_form'] = ClientsListForm(self.request.user)
def prepare(self, obj, obj_items, export_to=None):
"""Изменить/подмешать дополнительные поля к документу."""
obj.sum_total_price = Decimal('0.00')
obj.sum_total_nds = Decimal('0.00')
obj.sum_full_total_price = Decimal('0.00')
for item in obj_items:
obj.sum_total_price += item.total_price
obj.sum_total_nds += utils.calc_total_nds(item)
obj.sum_full_total_price += utils.calc_full_total_price(item)
s = u'Итого НДС (%s)' % obj.get_nds_value_display()
obj.nds_itogo_text = s

@ -1,58 +0,0 @@
# -*- coding: utf-8 -*-
from ..models import Platejka
from ..forms import PlatejkaForm
from ..filters import PlatejkaFilterSet
from .base_views import BaseViews
class PlatejkaViews(BaseViews):
"""Views для платежных поручений."""
MODEL = Platejka # модель документа
FORM_CLASS = PlatejkaForm # форма документа
# поля, по которым можно сортировать список документов
ORDER_FIELDS = ('doc_date', 'doc_num', 'doc_info', 'doc_total',)
FILTERSET_CLASS = PlatejkaFilterSet # фильтры
# префикс именованных урлов этого типа документов, для передачи в шаблон
URL_PREFIX = 'docs_platejka_'
# именованные урлы операций
URL_LIST = 'docs_platejka_list'
URL_EDIT = 'docs_platejka_edit'
# пути к шаблонам
TEMPLATE_LIST = 'docs/platejka/list.html'
TEMPLATE_FORM = 'docs/platejka/form.html'
TEMPLATE_FORM_JS = 'docs/platejka/js.html'
# для генерации pdf/xls
PDF_TEMPLATE = 'docs/platejka/as_pdf.html'
XLS_TEMPLATE = 'platejka.xls'
FILENAME = u'Платежное поручение № %s, %s' # без расширения
# --- грамматика для вывода наименований в шаблонах
PADEJI = {
'imenit': u'платёжное поручение', # кто? что?
'rodit': u'платёжного поручения', # кого? чего?
'dateln': u'платёжному поручению', # кому? чему?
'vinit': u'платёжное поручение', # кого? что?
'tvorit': u'платёжным поручением', # кем? чем?
'predlojn': u'платёжном поручении', # о ком? о чём?
}
PADEJI_MNOJ = {
'imenit': u'платёжные поручения', # кто? что?
'rodit': u'платёжных поручений', # кого? чего?
'dateln': u'платёжным поручениям', # кому? чему?
'vinit': u'платёжные поручения', # кого? что?
'tvorit': u'платёжными поручениями', # кем? чем?
'predlojn': u'платёжных поручениях', # о ком? о чём?
}
def update_list_dict(self, dictionary):
"""Здесь можно изменить словарь параметров перед передачей его в шаблон вывода списка документов."""
pass

@ -1,84 +0,0 @@
#-*- coding: utf -8-*-
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from models import IndexBlockPlugin, ExtendedTextBlockPlugin, ExtendedBlockPlugin, DescTextBlockPlugin
from forms import IndexBlockForm, ExtendedBlockForm, ExtendedTextBlockForm, DescBlockForm
from project.myauth.forms import RegistrationForm
from django.utils.translation import ugettext as _
class CMSIndexBlockPlugin(CMSPluginBase):
model = IndexBlockPlugin
form = IndexBlockForm
name = u'Блок на главной (картинка и текст)'
render_template = "index_block.html"
def render(self, context, instance, placeholder):
context.update({
'object':instance,
'placeholder':placeholder
})
return context
class CMSExtendedTextBlockPlugin(CMSPluginBase):
model = ExtendedTextBlockPlugin
form = ExtendedTextBlockForm
name = u'Раскрывающийся блок'
render_template = "extended_text_block.html"
def render(self, context, instance, placeholder):
context.update({
'object':instance,
'placeholder':placeholder
})
return context
class CMSExtendedBlockPlugin(CMSPluginBase):
model = ExtendedBlockPlugin
form = ExtendedBlockForm
name = u'Раскрывающийся блок с картинкой'
render_template = "extended_block.html"
def render(self, context, instance, placeholder):
context.update({
'object':instance,
'placeholder':placeholder
})
return context
class CMSDescTextBlockPlugin(CMSPluginBase):
model = DescTextBlockPlugin
form = ExtendedBlockForm
name = u'Заголовок/описание'
render_template = "desc_block.html"
def render(self, context, instance, placeholder):
context.update({
'object':instance,
'placeholder':placeholder
})
return context
class CMSSlideshowBlockPlugin(CMSPluginBase):
model = IndexBlockPlugin
form = IndexBlockForm
name = u'Кадр слайдшоу'
render_template = "slideshow_block.html"
def render(self, context, instance, placeholder):
context.update({
'object':instance,
'placeholder':placeholder
})
return context
plugin_pool.register_plugin(CMSExtendedTextBlockPlugin)
# plugin_pool.register_plugin(CMSIndexBlockPlugin)
plugin_pool.register_plugin(CMSExtendedBlockPlugin)
plugin_pool.register_plugin(CMSDescTextBlockPlugin)
# plugin_pool.register_plugin(CMSSlideshowBlockPlugin)

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save