Compare commits
393 Commits
669 changed files with 25369 additions and 14315 deletions
@ -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"] |
||||||
|
}; |
||||||
@ -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 |
||||||
@ -1,15 +1,204 @@ |
|||||||
*.*~ |
celerybeat-schedule |
||||||
*.pyc |
/tmp_emails/ |
||||||
|
/tmp/ |
||||||
|
/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 |
||||||
|
.DS_Store? |
||||||
._* |
._* |
||||||
pip-log.txt |
.Spotlight-V100 |
||||||
ENV/ |
.Trashes |
||||||
.idea/ |
ehthumbs.db |
||||||
local_settings.py |
|
||||||
Thumbs.db |
Thumbs.db |
||||||
distribute-*.tar.gz |
################################################################################ |
||||||
*.bak |
|
||||||
*.swp |
####################JetBrains################################################### |
||||||
_public_html/ |
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio |
||||||
celerybeat-schedule |
|
||||||
yandex_money.log |
*.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 |
||||||
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 58 KiB |
@ -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 +0,0 @@ |
|||||||
* |
|
||||||
@ -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,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,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,280 +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}) |
|
||||||
|
|
||||||
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, |
|
||||||
} |
|
||||||
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,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,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…
Reference in new issue